Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-ora2
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-ora2
Commits
94a2abf6
Commit
94a2abf6
authored
Jan 02, 2015
by
Usman Khalid
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed js tests.
TNL-708
parent
f6db73e2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
28 deletions
+41
-28
openassessment/xblock/static/js/fixtures/templates.json
+6
-1
openassessment/xblock/static/js/openassessment-lms.min.js
+0
-0
openassessment/xblock/static/js/spec/lms/oa_response.js
+28
-22
openassessment/xblock/static/js/src/lms/oa_response.js
+7
-5
No files found.
openassessment/xblock/static/js/fixtures/templates.json
View file @
94a2abf6
...
...
@@ -86,7 +86,12 @@
{
"template"
:
"openassessmentblock/response/oa_response.html"
,
"context"
:
{
"saved_response"
:
""
,
"saved_response"
:
{
"answer"
:
{
"parts"
:
[
{
"text"
:
""
,
"prompt"
:
{
"description"
:
"Prompt 1"
}},
{
"text"
:
""
,
"prompt"
:
{
"description"
:
"Prompt 2"
}}
]}
},
"save_status"
:
"This response has not been saved."
,
"submit_enabled"
:
false
,
"submission_due"
:
""
...
...
openassessment/xblock/static/js/openassessment-lms.min.js
View file @
94a2abf6
This diff is collapsed.
Click to expand it.
openassessment/xblock/static/js/spec/lms/oa_response.js
View file @
94a2abf6
...
...
@@ -127,23 +127,29 @@ describe("OpenAssessment.ResponseView", function() {
view
.
setAutoSaveEnabled
(
false
);
});
it
(
"updates and retrieves response text correctly"
,
function
()
{
view
.
response
([
'Test response 1'
,
'Test response 2'
]);
expect
(
view
.
response
()[
0
]).
toBe
(
'Test response 1'
);
expect
(
view
.
response
()[
1
]).
toBe
(
'Test response 2'
);
});
it
(
"updates submit/save buttons and save status when response text changes"
,
function
()
{
// Response is blank --> save/submit buttons disabled
view
.
response
(
''
);
view
.
response
(
[
''
,
''
]
);
view
.
handleResponseChanged
();
expect
(
view
.
submitEnabled
()).
toBe
(
false
);
expect
(
view
.
saveEnabled
()).
toBe
(
false
);
expect
(
view
.
saveStatus
()).
toContain
(
'This response has not been saved.'
);
// Response is whitespace --> save/submit buttons disabled
view
.
response
(
'
\
n
\
n '
);
view
.
response
(
[
'
\
n
\
n '
,
' '
]
);
view
.
handleResponseChanged
();
expect
(
view
.
submitEnabled
()).
toBe
(
false
);
expect
(
view
.
saveEnabled
()).
toBe
(
false
);
expect
(
view
.
saveStatus
()).
toContain
(
'This response has not been saved.'
);
// Response is not blank --> submit button enabled
view
.
response
(
'Test response'
);
view
.
response
(
[
'Test response 1'
,
' '
]
);
view
.
handleResponseChanged
();
expect
(
view
.
submitEnabled
()).
toBe
(
true
);
expect
(
view
.
saveEnabled
()).
toBe
(
true
);
...
...
@@ -159,7 +165,7 @@ describe("OpenAssessment.ResponseView", function() {
expect
(
view
.
saveStatus
()).
toContain
(
'saved but not submitted'
);
// Response is not blank --> submit button enabled
view
.
response
(
'Test response'
);
view
.
response
(
[
'Test response 1'
,
'Test response 2'
]
);
view
.
save
();
expect
(
view
.
submitEnabled
()).
toBe
(
true
);
expect
(
view
.
saveEnabled
()).
toBe
(
false
);
...
...
@@ -168,21 +174,21 @@ describe("OpenAssessment.ResponseView", function() {
it
(
"shows unsaved draft only when response text has changed"
,
function
()
{
// Save the initial response
view
.
response
(
'Lorem ipsum'
);
view
.
response
(
[
'Test response 1'
,
'Test response 2'
]
);
view
.
save
();
expect
(
view
.
saveEnabled
()).
toBe
(
false
);
expect
(
view
.
saveStatus
()).
toContain
(
'saved but not submitted'
);
// Keep the text the same, but trigger an update
// Should still be saved
view
.
response
(
'Lorem ipsum'
);
view
.
response
(
[
'Test response 1'
,
'Test response 2'
]
);
view
.
handleResponseChanged
();
expect
(
view
.
saveEnabled
()).
toBe
(
false
);
expect
(
view
.
saveStatus
()).
toContain
(
'saved but not submitted'
);
// Change the text
// This should cause it to change to unsaved draft
view
.
response
(
'changed '
);
view
.
response
(
[
'Test response 1'
,
'Test response 3'
]
);
view
.
handleResponseChanged
();
expect
(
view
.
saveEnabled
()).
toBe
(
true
);
expect
(
view
.
saveStatus
()).
toContain
(
'This response has not been saved.'
);
...
...
@@ -190,16 +196,16 @@ describe("OpenAssessment.ResponseView", function() {
it
(
"sends the saved submission to the server"
,
function
()
{
spyOn
(
server
,
'save'
).
andCallThrough
();
view
.
response
(
'Test response'
);
view
.
response
(
[
'Test response 1'
,
'Test response 2'
]
);
view
.
save
();
expect
(
server
.
save
).
toHaveBeenCalledWith
(
'Test response'
);
expect
(
server
.
save
).
toHaveBeenCalledWith
(
[
'Test response 1'
,
'Test response 2'
]
);
});
it
(
"submits a response to the server"
,
function
()
{
spyOn
(
server
,
'submit'
).
andCallThrough
();
view
.
response
(
'Test response'
);
view
.
response
(
[
'Test response 1'
,
'Test response 2'
]
);
view
.
submit
();
expect
(
server
.
submit
).
toHaveBeenCalledWith
(
'Test response'
);
expect
(
server
.
submit
).
toHaveBeenCalledWith
(
[
'Test response 1'
,
'Test response 2'
]
);
});
it
(
"allows the user to cancel before submitting"
,
function
()
{
...
...
@@ -208,7 +214,7 @@ describe("OpenAssessment.ResponseView", function() {
spyOn
(
server
,
'submit'
).
andCallThrough
();
// Start a submission
view
.
response
(
'Test response'
);
view
.
response
(
[
'Test response 1'
,
'Test response 2'
]
);
view
.
submit
();
// Expect that the submission was not sent to the server
...
...
@@ -222,7 +228,7 @@ describe("OpenAssessment.ResponseView", function() {
return
$
.
Deferred
(
function
(
defer
)
{}).
promise
();
});
view
.
response
(
'Test response'
);
view
.
response
(
[
'Test response 1'
,
'Test response 2'
]
);
view
.
submit
();
expect
(
view
.
submitEnabled
()).
toBe
(
false
);
});
...
...
@@ -235,7 +241,7 @@ describe("OpenAssessment.ResponseView", function() {
}).
promise
();
});
view
.
response
(
'Test response'
);
view
.
response
(
[
'Test response 1'
,
'Test response 2'
]
);
view
.
submit
();
// Expect the submit button to have been re-enabled
...
...
@@ -248,7 +254,7 @@ describe("OpenAssessment.ResponseView", function() {
spyOn
(
server
,
'submit'
).
andCallThrough
();
// Start a submission
view
.
response
(
'Test response'
);
view
.
response
(
[
'Test response 1'
,
'Test response 2'
]
);
view
.
submit
();
// Expect the submit button to be re-enabled
...
...
@@ -265,7 +271,7 @@ describe("OpenAssessment.ResponseView", function() {
spyOn
(
view
,
'load'
);
spyOn
(
baseView
,
'loadAssessmentModules'
);
view
.
response
(
'Test response'
);
view
.
response
(
[
'Test response 1'
,
'Test response 2'
]
);
view
.
submit
();
// Expect the current and next step to have been reloaded
...
...
@@ -278,7 +284,7 @@ describe("OpenAssessment.ResponseView", function() {
expect
(
view
.
unsavedWarningEnabled
()).
toBe
(
false
);
// Change the text, then expect the unsaved warning to be enabled.
view
.
response
(
'Lorem ipsum'
);
view
.
response
(
[
'Lorem ipsum 1'
,
'Lorem ipsum 2'
]
);
view
.
handleResponseChanged
();
// Expect the unsaved work warning to be enabled
...
...
@@ -287,7 +293,7 @@ describe("OpenAssessment.ResponseView", function() {
it
(
"disables the unsaved work warning when the user saves a response"
,
function
()
{
// Change the text, then expect the unsaved warning to be enabled.
view
.
response
(
'Lorem ipsum'
);
view
.
response
(
[
'Lorem ipsum 1'
,
'Lorem ipsum 2'
]
);
view
.
handleResponseChanged
();
expect
(
view
.
unsavedWarningEnabled
()).
toBe
(
true
);
...
...
@@ -298,7 +304,7 @@ describe("OpenAssessment.ResponseView", function() {
it
(
"disables the unsaved work warning when the user submits a response"
,
function
()
{
// Change the text, then expect the unsaved warning to be enabled.
view
.
response
(
'Lorem ipsum'
);
view
.
response
(
[
'Lorem ipsum 1'
,
'Lorem ipsum 2'
]
);
view
.
handleResponseChanged
();
expect
(
view
.
unsavedWarningEnabled
()).
toBe
(
true
);
...
...
@@ -315,7 +321,7 @@ describe("OpenAssessment.ResponseView", function() {
expect
(
view
.
saveStatus
()).
toContain
(
'not been saved'
);
// Change the response
view
.
response
(
'Lorem ipsum'
);
view
.
response
(
[
'Lorem ipsum 1'
,
'Lorem ipsum 2'
]
);
view
.
handleResponseChanged
();
// Usually autosave would be called by a timer.
...
...
@@ -357,7 +363,7 @@ describe("OpenAssessment.ResponseView", function() {
spyOn
(
server
,
'save'
).
andCallFake
(
function
()
{
return
errorPromise
;
});
// Change the response and save it
view
.
response
(
'Lorem ipsum'
);
view
.
response
(
[
'Lorem ipsum 1'
,
'Lorem ipsum 2'
]
);
view
.
handleResponseChanged
();
view
.
save
();
...
...
@@ -378,7 +384,7 @@ describe("OpenAssessment.ResponseView", function() {
view
.
AUTO_SAVE_WAIT
=
900000
;
// Change the response
view
.
response
(
'Lorem ipsum'
);
view
.
response
(
[
'Lorem ipsum 1'
,
'Lorem ipsum 2'
]
);
view
.
handleResponseChanged
();
// Autosave
...
...
openassessment/xblock/static/js/src/lms/oa_response.js
View file @
94a2abf6
...
...
@@ -269,7 +269,7 @@ OpenAssessment.ResponseView.prototype = {
**/
response
:
function
(
texts
)
{
var
sel
=
$
(
'.submission__answer__part__text__value'
,
this
.
element
);
if
(
typeof
text
===
'undefined'
)
{
if
(
typeof
text
s
===
'undefined'
)
{
return
sel
.
map
(
function
()
{
return
$
.
trim
(
$
(
this
).
val
());
}).
get
();
...
...
@@ -320,14 +320,16 @@ OpenAssessment.ResponseView.prototype = {
**/
handleResponseChanged
:
function
()
{
// Enable the save/submit button only for non-blank responses
var
isBlank
=
(
$
.
trim
(
this
.
response
())
!==
''
);
this
.
submitEnabled
(
isBlank
);
var
isNotBlank
=
!
this
.
response
().
every
(
function
(
element
,
index
,
array
)
{
return
$
.
trim
(
element
)
==
''
;
});
this
.
submitEnabled
(
isNotBlank
);
// Update the save button, save status, and "unsaved changes" warning
// only if the response has changed
if
(
this
.
responseChanged
())
{
this
.
saveEnabled
(
isBlank
);
this
.
previewEnabled
(
isBlank
);
this
.
saveEnabled
(
is
Not
Blank
);
this
.
previewEnabled
(
is
Not
Blank
);
this
.
saveStatus
(
gettext
(
'This response has not been saved.'
));
this
.
unsavedWarningEnabled
(
true
);
}
...
...
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