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
53c12d51
Commit
53c12d51
authored
Apr 24, 2015
by
Waqas Khalid
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #7587 from edx/waqas/tnl1844-wrong-tab-problem
Tab number in url doesn't take to correct tab
parents
39cd5cec
97e6091b
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
119 additions
and
2 deletions
+119
-2
common/lib/xmodule/xmodule/x_module.py
+2
-0
common/test/acceptance/pages/lms/courseware.py
+25
-0
common/test/acceptance/tests/lms/test_lms_courseware.py
+92
-2
No files found.
common/lib/xmodule/xmodule/x_module.py
View file @
53c12d51
...
...
@@ -555,6 +555,8 @@ class XModuleMixin(XModuleFields, XBlockMixin):
# Skip rebinding if we're already bound a user, and it's this user.
if
self
.
scope_ids
.
user_id
is
not
None
and
user_id
==
self
.
scope_ids
.
user_id
:
if
getattr
(
xmodule_runtime
,
'position'
,
None
):
self
.
position
=
xmodule_runtime
.
position
# update the position of the tab
return
# If we are switching users mid-request, save the data from the old user.
...
...
common/test/acceptance/pages/lms/courseware.py
View file @
53c12d51
...
...
@@ -87,3 +87,28 @@ class CoursewarePage(CoursePage):
return
False
return
True
def
get_active_subsection_url
(
self
):
"""
return the url of the active subsection in the left nav
"""
return
self
.
q
(
css
=
'.chapter ul li.active a'
)
.
attrs
(
'href'
)[
0
]
class
CoursewareSequentialTabPage
(
CoursePage
):
"""
Courseware Sequential page
"""
def
__init__
(
self
,
browser
,
course_id
,
chapter
,
subsection
,
position
):
super
(
CoursewareSequentialTabPage
,
self
)
.
__init__
(
browser
,
course_id
)
self
.
url_path
=
"courseware/{}/{}/{}"
.
format
(
chapter
,
subsection
,
position
)
def
is_browser_on_page
(
self
):
return
self
.
q
(
css
=
'nav.sequence-list-wrapper'
)
.
present
def
get_selected_tab_content
(
self
):
"""
return the body of the sequential currently selected
"""
return
self
.
q
(
css
=
'#seq_content .xblock'
)
.
text
[
0
]
common/test/acceptance/tests/lms/test_lms_courseware.py
View file @
53c12d51
...
...
@@ -7,7 +7,8 @@ import time
from
..helpers
import
UniqueCourseTest
from
...pages.studio.auto_auth
import
AutoAuthPage
from
...pages.studio.overview
import
CourseOutlinePage
from
...pages.lms.courseware
import
CoursewarePage
from
...pages.lms.courseware
import
CoursewarePage
,
CoursewareSequentialTabPage
from
...pages.lms.course_nav
import
CourseNavPage
from
...pages.lms.problem
import
ProblemPage
from
...pages.common.logout
import
LogoutPage
from
...fixtures.course
import
CourseFixture
,
XBlockFixtureDesc
...
...
@@ -104,6 +105,95 @@ class CoursewareTest(UniqueCourseTest):
# Visit courseware as a student.
self
.
courseware_page
.
visit
()
# Problem name should be "TEST PROBLEM 2".
self
.
assertEqual
(
self
.
problem_page
.
problem_name
,
'TEST PROBLEM 2'
)
class
CoursewareMultipleVerticalsTest
(
UniqueCourseTest
):
"""
Test courseware with multiple verticals
"""
USERNAME
=
"STUDENT_TESTER"
EMAIL
=
"student101@example.com"
def
setUp
(
self
):
super
(
CoursewareMultipleVerticalsTest
,
self
)
.
setUp
()
self
.
courseware_page
=
CoursewarePage
(
self
.
browser
,
self
.
course_id
)
self
.
course_outline
=
CourseOutlinePage
(
self
.
browser
,
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
]
)
# Install a course with sections/problems, tabs, updates, and handouts
course_fix
=
CourseFixture
(
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
],
self
.
course_info
[
'display_name'
]
)
course_fix
.
add_children
(
XBlockFixtureDesc
(
'chapter'
,
'Test Section 1'
)
.
add_children
(
XBlockFixtureDesc
(
'sequential'
,
'Test Subsection 1'
)
.
add_children
(
XBlockFixtureDesc
(
'problem'
,
'Test Problem 1'
,
data
=
'<problem>problem 1 dummy body</problem>'
),
XBlockFixtureDesc
(
'html'
,
'html 1'
,
data
=
"<html>html 1 dummy body</html>"
),
XBlockFixtureDesc
(
'problem'
,
'Test Problem 2'
,
data
=
"<problem>problem 2 dummy body</problem>"
),
XBlockFixtureDesc
(
'html'
,
'html 2'
,
data
=
"<html>html 2 dummy body</html>"
),
),
XBlockFixtureDesc
(
'sequential'
,
'Test Subsection 2'
),
),
)
.
install
()
# Auto-auth register for the course.
AutoAuthPage
(
self
.
browser
,
username
=
self
.
USERNAME
,
email
=
self
.
EMAIL
,
course_id
=
self
.
course_id
,
staff
=
False
)
.
visit
()
self
.
courseware_page
.
visit
()
self
.
course_nav
=
CourseNavPage
(
self
.
browser
)
def
test_tab_position
(
self
):
# test that using the position in the url direct to correct tab in courseware
self
.
course_nav
.
go_to_section
(
'Test Section 1'
,
'Test Subsection 1'
)
subsection_url
=
self
.
courseware_page
.
get_active_subsection_url
()
url_part_list
=
subsection_url
.
split
(
'/'
)
self
.
assertEqual
(
len
(
url_part_list
),
9
)
course_id
=
url_part_list
[
4
]
chapter_id
=
url_part_list
[
-
3
]
subsection_id
=
url_part_list
[
-
2
]
problem1_page
=
CoursewareSequentialTabPage
(
self
.
browser
,
course_id
=
course_id
,
chapter
=
chapter_id
,
subsection
=
subsection_id
,
position
=
1
)
.
visit
()
self
.
assertIn
(
'problem 1 dummy body'
,
problem1_page
.
get_selected_tab_content
())
html1_page
=
CoursewareSequentialTabPage
(
self
.
browser
,
course_id
=
course_id
,
chapter
=
chapter_id
,
subsection
=
subsection_id
,
position
=
2
)
.
visit
()
self
.
assertIn
(
'html 1 dummy body'
,
html1_page
.
get_selected_tab_content
())
problem2_page
=
CoursewareSequentialTabPage
(
self
.
browser
,
course_id
=
course_id
,
chapter
=
chapter_id
,
subsection
=
subsection_id
,
position
=
3
)
.
visit
()
self
.
assertIn
(
'problem 2 dummy body'
,
problem2_page
.
get_selected_tab_content
())
html2_page
=
CoursewareSequentialTabPage
(
self
.
browser
,
course_id
=
course_id
,
chapter
=
chapter_id
,
subsection
=
subsection_id
,
position
=
4
)
.
visit
()
self
.
assertIn
(
'html 2 dummy body'
,
html2_page
.
get_selected_tab_content
())
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