Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
f384400b
Commit
f384400b
authored
Jul 28, 2015
by
Christina Roberts
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #9026 from edx/christina/tnl1653-incorrect-textbook-link
Fix View Live link on Textbooks page in Studio.
parents
505b6473
44b1971a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
116 additions
and
1 deletions
+116
-1
cms/templates/js/show-textbook.underscore
+1
-1
common/test/acceptance/pages/studio/textbooks.py
+64
-0
common/test/acceptance/tests/studio/test_studio_textbooks.py
+51
-0
No files found.
cms/templates/js/show-textbook.underscore
View file @
f384400b
...
...
@@ -34,7 +34,7 @@
<ul class="actions textbook-actions">
<li class="action action-view">
<a href="//<%= CMS.URL.LMS_BASE %>/courses/<%= course.
org %>/<%= course.num %>/<%= course.url_name
%>/pdfbook/<%= bookindex %>/" class="view"><%= gettext("View Live") %></a>
<a href="//<%= CMS.URL.LMS_BASE %>/courses/<%= course.
id
%>/pdfbook/<%= bookindex %>/" class="view"><%= gettext("View Live") %></a>
</li>
<li class="action action-edit">
<button class="edit"><%= gettext("Edit") %></button>
...
...
common/test/acceptance/pages/studio/textbooks.py
View file @
f384400b
...
...
@@ -2,7 +2,10 @@
Course Textbooks page.
"""
import
requests
from
path
import
path
# pylint: disable=no-name-in-module
from
.course_page
import
CoursePage
from
.utils
import
click_css
class
TextbooksPage
(
CoursePage
):
...
...
@@ -14,3 +17,64 @@ class TextbooksPage(CoursePage):
def
is_browser_on_page
(
self
):
return
self
.
q
(
css
=
'body.view-textbooks'
)
.
present
def
open_add_textbook_form
(
self
):
"""
Open new textbook form by clicking on new textbook button.
"""
self
.
q
(
css
=
'.nav-item .new-button'
)
.
click
()
def
get_element_text
(
self
,
selector
):
"""
Return the text of the css selector.
"""
return
self
.
q
(
css
=
selector
)[
0
]
.
text
def
set_input_field_value
(
self
,
selector
,
value
):
"""
Set the value of input field by selector.
"""
self
.
q
(
css
=
selector
)[
0
]
.
send_keys
(
value
)
def
upload_pdf_file
(
self
,
file_name
):
"""
Uploads a pdf textbook.
"""
# If the pdf upload section has not yet been toggled on, click on the upload pdf button
test_dir
=
path
(
__file__
)
.
abspath
()
.
dirname
()
.
dirname
()
.
dirname
()
file_path
=
test_dir
+
'/data/uploads/'
+
file_name
click_css
(
self
,
".edit-textbook .action-upload"
,
require_notification
=
False
)
self
.
wait_for_element_visibility
(
".upload-dialog input"
,
"Upload modal opened"
)
file_input
=
self
.
q
(
css
=
".upload-dialog input"
)
.
results
[
0
]
file_input
.
send_keys
(
file_path
)
click_css
(
self
,
".wrapper-modal-window-assetupload .action-upload"
,
require_notification
=
False
)
self
.
wait_for_element_absence
(
".upload dialog"
,
"Upload modal closed"
)
def
click_textbook_submit_button
(
self
):
"""
Submit the new textbook form and check if it is rendered properly.
"""
def
click_save
():
"""
Continue to click the save button until the form is no longer present. Without this,
the test sporadically fails because the click is too early.
"""
save_button
=
self
.
q
(
css
=
'#edit_textbook_form button[type="submit"]'
)
.
results
if
len
(
save_button
)
>
0
:
save_button
[
0
]
.
click
()
return
not
self
.
q
(
css
=
"#edit_textbook_form"
)
.
present
self
.
wait_for
(
click_save
,
"Editing form should close."
)
def
is_view_live_link_worked
(
self
):
"""
Check if the view live button of textbook is working fine.
"""
try
:
self
.
wait_for
(
lambda
:
len
(
self
.
q
(
css
=
'.textbook a.view'
)
.
attrs
(
'href'
))
>
0
,
"href value present"
)
response
=
requests
.
get
(
self
.
q
(
css
=
'.textbook a.view'
)
.
attrs
(
'href'
)[
0
])
except
requests
.
exceptions
.
ConnectionError
:
return
False
return
response
.
status_code
==
200
common/test/acceptance/tests/studio/test_studio_textbooks.py
0 → 100644
View file @
f384400b
"""
Acceptance tests for Studio related to the textbooks.
"""
from
common.test.acceptance.tests.studio.base_studio_test
import
StudioCourseTest
from
...pages.studio.textbooks
import
TextbooksPage
from
...tests.helpers
import
disable_animations
from
nose.plugins.attrib
import
attr
@attr
(
'shard_2'
)
class
TextbooksTest
(
StudioCourseTest
):
"""
Test that textbook functionality is working properly on studio side
"""
def
setUp
(
self
,
is_staff
=
True
):
"""
Install a course with no content using a fixture.
"""
super
(
TextbooksTest
,
self
)
.
setUp
(
is_staff
)
self
.
textbook_page
=
TextbooksPage
(
self
.
browser
,
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
]
)
self
.
textbook_page
.
visit
()
disable_animations
(
self
)
def
test_create_first_book_message
(
self
):
"""
Scenario: A message is displayed on the textbooks page when there are no uploaded textbooks
Given that I am viewing the Textbooks page in Studio
And I have not yet uploaded a textbook
Then I see a message stating that I have not uploaded any textbooks
"""
message
=
self
.
textbook_page
.
get_element_text
(
'.wrapper-content .no-textbook-content'
)
self
.
assertIn
(
"You haven't added any textbooks"
,
message
)
def
test_new_textbook_upload
(
self
):
"""
Scenario: View Live link for textbook is correctly populated
Given that I am viewing the Textbooks page in Studio
And I have uploaded a PDF textbook and save the new textbook information
Then the "View Live" link contains a link to the textbook in the LMS
"""
self
.
textbook_page
.
open_add_textbook_form
()
self
.
textbook_page
.
upload_pdf_file
(
'textbook.pdf'
)
self
.
textbook_page
.
set_input_field_value
(
'.edit-textbook #textbook-name-input'
,
'book_1'
)
self
.
textbook_page
.
set_input_field_value
(
'.edit-textbook #chapter1-name'
,
'chapter_1'
)
self
.
textbook_page
.
click_textbook_submit_button
()
self
.
assertTrue
(
self
.
textbook_page
.
is_view_live_link_worked
())
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment