itemengine-cypress-automation 1.0.105 → 1.0.106

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/gradingViewAndCorrectAnswerViewContents.smoke.js +129 -0
  2. package/cypress/e2e/ILC/AudioResponseNew/minimalRecorderStyle.js +482 -0
  3. package/cypress/e2e/ILC/AudioResponseNew/previewContentsForAllViews.smoke.js +123 -0
  4. package/cypress/e2e/ILC/AudioResponseNew/standardRecorderStyle.js +554 -0
  5. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -41
  6. package/cypress/e2e/ILC/EditTabSettingPage/ItemPreviewSettingsTabContent.js +5 -3
  7. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +284 -0
  8. package/cypress/e2e/ILC/EssayResponse/equationEditor.smoke.js +412 -0
  9. package/cypress/e2e/ILC/EssayResponse/equationEditorCategories1.js +203 -0
  10. package/cypress/e2e/ILC/EssayResponse/equationEditorCategories2.js +340 -0
  11. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettings.js +432 -0
  12. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettingsBasic.js +134 -0
  13. package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions1.smoke.js +336 -0
  14. package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions2.js +332 -0
  15. package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions3.js +522 -0
  16. package/cypress/e2e/ILC/EssayResponse/essayResponseSpecialCharacters.js +253 -0
  17. package/cypress/e2e/ILC/EssayResponse/previewHyperlink.js +266 -0
  18. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +57 -640
  19. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/previewContentsForAllViews.smoke.js +1 -2
  20. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +209 -0
  21. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +209 -0
  22. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +303 -0
  23. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/allOrNothingPenaltyScoring.js +68 -0
  24. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialEqualWeightsBasic.js +149 -0
  25. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +218 -0
  26. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +191 -0
  27. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +219 -0
  28. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +240 -0
  29. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/checkAnswerFunctionalityForAllViews.smoke.js +124 -0
  30. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/previewContentsForAllViews.smoke.js +107 -0
  31. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/manuallyAndNonScored.js +1 -1
  32. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsBasic.js +0 -2
  33. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/backgroundImageAndCanvasProperties.js +408 -0
  34. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +2 -2
  35. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/previewContentsForAllViews.smoke.js +1 -1
  36. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +2 -2
  37. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +1 -0
  38. package/cypress/e2e/ILC/MultipleSelection/studentViewSettings.js +0 -6
  39. package/cypress/e2e/ILC/Passage/multipageContentEditTab.js +242 -0
  40. package/cypress/e2e/ILC/Passage/passageAdditionalSettings.js +99 -0
  41. package/cypress/e2e/ILC/Passage/passageEditTab.js +241 -0
  42. package/cypress/e2e/ILC/Passage/passageHeaderSection.js +73 -0
  43. package/cypress/e2e/ILC/Passage/passagePreviewTab.js +246 -0
  44. package/cypress/e2e/ILC/ReadingRuler/readingRulerEditTabBasicsSection.js +138 -33
  45. package/cypress/e2e/ILC/ReadingRuler/readingRulerHeaderSection.js +30 -6
  46. package/cypress/e2e/ILC/ReadingRuler/readingRulerPreviewTab.js +167 -101
  47. package/cypress/e2e/ILC/ReadingRuler/readingrulerPreviewContents.smoke.js +1 -1
  48. package/cypress/e2e/ILC/SingleSelection/headerSection.js +20 -5
  49. package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +1 -0
  50. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +12 -7
  51. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.js +1336 -0
  52. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.js +419 -0
  53. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.js +443 -0
  54. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.js +411 -0
  55. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.js +411 -0
  56. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +45 -0
  57. package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +3 -3
  58. package/cypress/fixtures/specialAndMathCharacters.js +2 -0
  59. package/cypress/fixtures/theme/ilc.json +4 -2
  60. package/cypress/pages/audioResponsePage.js +326 -165
  61. package/cypress/pages/components/additionalSettingsPanel.js +1 -1
  62. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +1 -1
  63. package/cypress/pages/components/backgroundImageUploadComponent.js +162 -2
  64. package/cypress/pages/components/colorPopupComponent.js +115 -26
  65. package/cypress/pages/components/customizeMathCharacterComponent.js +133 -0
  66. package/cypress/pages/components/customizeSpecialCharacterComponent.js +74 -4
  67. package/cypress/pages/components/editCategoryFlyout.js +164 -2
  68. package/cypress/pages/components/equationEditorFlyout.js +36 -1
  69. package/cypress/pages/components/essayResponseCommonComponents.js +0 -2
  70. package/cypress/pages/components/figOverImageCanvasComponent.js +587 -134
  71. package/cypress/pages/components/index.js +2 -1
  72. package/cypress/pages/components/playbackControlsBaseComponent.js +137 -2
  73. package/cypress/pages/correctAnswerViewPage.js +12 -1
  74. package/cypress/pages/drawingResponsePage.js +26 -151
  75. package/cypress/pages/essayResponseMathPage.js +28 -16
  76. package/cypress/pages/essayResponsePage.js +187 -7
  77. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +78 -14
  78. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +178 -221
  79. package/cypress/pages/fillInTheGapsOverImageTextPage.js +79 -0
  80. package/cypress/pages/multipleSelectionPage.js +1 -1
  81. package/cypress/pages/readingRulerPage.js +219 -104
  82. package/cypress/pages/singleSelectionPage.js +1 -0
  83. package/cypress/pages/textEntryMathPage.js +17 -6
  84. package/cypress/pages/videoResponsePage.js +0 -8
  85. package/package.json +1 -1
  86. package/scripts/sorry-cypress.mjs +1 -1
@@ -0,0 +1,411 @@
1
+ import { textEntryMathPage } from "../../../pages";
2
+ import { equationEditorFlyout } from "../../../pages/components";
3
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
4
+
5
+ describe('Create item page - Text entry math: Value is equivalent evaluation method', () => {
6
+ before(() => {
7
+ cy.loginAs('admin');
8
+ });
9
+
10
+ describe('Evaluation methods: Symbols are equivalent', () => {
11
+ abortEarlySetup();
12
+ before(() => {
13
+ textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
14
+ cy.barsPreLoaderWait();
15
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Symbols are equivalent: Response inputted needs to be equivalent to be marked correct');
16
+ textEntryMathPage.steps.clearQuestionInputField();
17
+ textEntryMathPage.steps.addInputToQuestionInputField('Enter the correct value in the response field');
18
+ textEntryMathPage.steps.addResponseToken();
19
+ textEntryMathPage.steps.allotPoints(20);
20
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
21
+ textEntryMathPage.steps.selectEvaluationMethod('Symbols are equivalent');
22
+ });
23
+
24
+ it('When the user enters a equation using decimals in \'Specify correct answer\' section and the user enters the same exact answer it should be treated as correct', () => {
25
+ textEntryMathPage.steps.addInputToResponseAnswerInputFieldSpecifyCorrectAnswer(0, '43.9822971503');
26
+ textEntryMathPage.steps.switchToPreviewTab();
27
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
28
+ equationEditorFlyout.steps.enterTextInPreviewInputField('43.9822971503');
29
+ equationEditorFlyout.steps.clickOnOkButton();
30
+ textEntryMathPage.steps.switchToGradingView();
31
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
32
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
33
+ });
34
+
35
+ it('When the user enters a equation using decimals in \'Specify correct answer\' section and answers the question which yields the same result but using appropriate symbols then it should be treated as correct', () => {
36
+ textEntryMathPage.steps.resetQuestionPreview();
37
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
38
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'keypad', symbolName: ['two', 'multiply', 'seven', 'multiply'] }, { categoryName: 'greek', symbolName: ['pi'] }]);
39
+ equationEditorFlyout.steps.clickOnOkButton();
40
+ textEntryMathPage.steps.switchToGradingView();
41
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
42
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
43
+ });
44
+
45
+ it('When the user enters a equation using decimals in \'Specify correct answer\' section and user enters answer using cube roots it should be treated as correct', () => {
46
+ textEntryMathPage.steps.resetQuestionPreview();
47
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
48
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'basic', symbolName: ['cubeRoot'] }]);
49
+ equationEditorFlyout.steps.enterTextAtInputFieldCursor('85081.223211');
50
+ equationEditorFlyout.steps.clickOnOkButton();
51
+ textEntryMathPage.steps.switchToGradingView();
52
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
53
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
54
+ });
55
+
56
+ it('When the user enters a equation using decimals in \'Specify correct answer\' and attempts the question using approximate value of pi then it should be treated as incorrect', () => {
57
+ textEntryMathPage.steps.resetQuestionPreview();
58
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
59
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'keypad', symbolName: ['two', 'multiply', 'seven', 'multiply'] }]);
60
+ equationEditorFlyout.steps.enterTextInPreviewInputField('3.14');
61
+ equationEditorFlyout.steps.clickOnOkButton();
62
+ textEntryMathPage.steps.switchToGradingView();
63
+ textEntryMathPage.steps.verifyIncorrectResponseIcon(0);
64
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
65
+ });
66
+
67
+ it('When the user enters a equation using parenthesis in \'Specify correct answer\' and user enters the simplified answer it should be treated as correct', () => {
68
+ textEntryMathPage.steps.switchToEditTab();
69
+ textEntryMathPage.steps.clearAnswerInputFieldSpecifyCorrectAnswer(0);
70
+ textEntryMathPage.steps.addInputToResponseAnswerInputFieldSpecifyCorrectAnswer(0, '(7-2)(7+2)');
71
+ textEntryMathPage.steps.switchToPreviewTab();
72
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
73
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'keypad', symbolName: ['four', 'five'] }]);
74
+ equationEditorFlyout.steps.clickOnOkButton();
75
+ textEntryMathPage.steps.switchToGradingView();
76
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
77
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
78
+ });
79
+
80
+ it('When the user enters a equation using parenthesis in \'Specify correct answer\' and user enters the expanded answer it should be treated as correct', () => {
81
+ textEntryMathPage.steps.resetQuestionPreview();
82
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
83
+ equationEditorFlyout.steps.enterTextInPreviewInputField('7(7-2)+2(7-2)');
84
+ equationEditorFlyout.steps.clickOnOkButton();
85
+ textEntryMathPage.steps.switchToGradingView();
86
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
87
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
88
+ });
89
+
90
+ it('When the user enters a equation using parenthesis in \'Specify correct answer\' and user enters the answer in form of fraction it should be treated as correct', () => {
91
+ textEntryMathPage.steps.resetQuestionPreview();
92
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
93
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'basic', symbolName: ['fraction'] }, { categoryName: 'keypad', symbolName: ['four', 'zero', 'five'] }]);
94
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['9']);
95
+ equationEditorFlyout.steps.clickOnOkButton();
96
+ textEntryMathPage.steps.switchToGradingView();
97
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
98
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
99
+ });
100
+
101
+ it('When the user sets percentage in \'Specify correct answer\' section and user enters a value using integers which yields same result it should be treated as correct', () => {
102
+ textEntryMathPage.steps.switchToEditTab();
103
+ textEntryMathPage.steps.clearAnswerInputFieldSpecifyCorrectAnswer(0);
104
+ textEntryMathPage.steps.addInputToResponseAnswerInputFieldSpecifyCorrectAnswer(0, '9000%');
105
+ textEntryMathPage.steps.switchToPreviewTab();
106
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
107
+ equationEditorFlyout.steps.enterTextInPreviewInputField('90');
108
+ equationEditorFlyout.steps.clickOnOkButton();
109
+ textEntryMathPage.steps.switchToGradingView();
110
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
111
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
112
+ });
113
+
114
+ it('When the user sets percentage in \'Specify correct answer\' section and user enters a value using decimals which yields same result it should be treated as correct', () => {
115
+ textEntryMathPage.steps.resetQuestionPreview();
116
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
117
+ equationEditorFlyout.steps.enterTextInPreviewInputField('90.00');
118
+ equationEditorFlyout.steps.clickOnOkButton();
119
+ textEntryMathPage.steps.switchToGradingView();
120
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
121
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
122
+ });
123
+
124
+ it('When the user enters a fraction value in \'Specify correct answer\' response field and then the user enters the exact same value then it should be treated as correct', () => {
125
+ textEntryMathPage.steps.switchToEditTab();
126
+ textEntryMathPage.steps.clearAnswerInputFieldSpecifyCorrectAnswer(0);
127
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
128
+ textEntryMathPage.steps.selectEquationEditorOptionFromCKEditorToolbar();
129
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'basic', symbolName: ['fraction'] }, { categoryName: 'keypad', symbolName: ['four'] }]);
130
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['3']);
131
+ equationEditorFlyout.steps.clickOnOkButton();
132
+ textEntryMathPage.steps.switchToPreviewTab();
133
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
134
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'basic', symbolName: ['fraction'] }, { categoryName: 'keypad', symbolName: ['four'] }]);
135
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['3']);
136
+ equationEditorFlyout.steps.clickOnOkButton();
137
+ textEntryMathPage.steps.switchToGradingView();
138
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
139
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
140
+ });
141
+
142
+ it('When the user enters a fraction value in \'Specify correct answer\' response field and then the user enters the fraction which yields the same value but is not the exact form then it should be treated as incorrect', () => {
143
+ textEntryMathPage.steps.resetQuestionPreview();
144
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
145
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'basic', symbolName: ['fraction'] }, { categoryName: 'keypad', symbolName: ['one', 'six'] }]);
146
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['12']);
147
+ equationEditorFlyout.steps.clickOnOkButton();
148
+ textEntryMathPage.steps.switchToGradingView();
149
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
150
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
151
+ });
152
+
153
+ it('When the user enters a fraction value in \'Specify correct answer\' response field and then the user enters the mixed fraction which yields the same value but is not the exact form then it should be treated as incorrect', () => {
154
+ textEntryMathPage.steps.resetQuestionPreview();
155
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
156
+ equationEditorFlyout.steps.enterTextInPreviewInputField('1');
157
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'basic', symbolName: ['mixedFraction'] }]);
158
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['1', '3']);
159
+ equationEditorFlyout.steps.clickOnOkButton();
160
+ textEntryMathPage.steps.switchToGradingView();
161
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
162
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
163
+ });
164
+
165
+ it('When the user enters a equation using polynomial quadratic equations in \'Specify correct answer\' and the user enters the exact same equation then it should be treated as correct', () => {
166
+ textEntryMathPage.steps.switchToEditTab();
167
+ textEntryMathPage.steps.clearAnswerInputFieldSpecifyCorrectAnswer(0);
168
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
169
+ textEntryMathPage.steps.selectEquationEditorOptionFromCKEditorToolbar();
170
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'keypad', symbolName: ['two'] }, { categoryName: 'basic', symbolName: ['x', 'square', 'y', 'square', 'add'] }, { categoryName: 'keypad', symbolName: ['four'] }, { categoryName: 'basic', symbolName: ['y', 'x', 'add'] }, { categoryName: 'keypad', symbolName: ['four'] }]);
171
+ equationEditorFlyout.steps.clickOnOkButton();
172
+ textEntryMathPage.steps.switchToPreviewTab();
173
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
174
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'keypad', symbolName: ['two'] }, { categoryName: 'basic', symbolName: ['x', 'square', 'y', 'square', 'add'] }, { categoryName: 'keypad', symbolName: ['four'] }, { categoryName: 'basic', symbolName: ['y', 'x', 'add'] }, { categoryName: 'keypad', symbolName: ['four'] }]);
175
+ equationEditorFlyout.steps.clickOnOkButton();
176
+ textEntryMathPage.steps.switchToGradingView();
177
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
178
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
179
+ });
180
+
181
+ it('When the user enters polynomial quadratic equations in \'Specify correct answer\' and the user enters the same equation in different order then it should be treated as correct', () => {
182
+ textEntryMathPage.steps.resetQuestionPreview();
183
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
184
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'keypad', symbolName: ['four'] }, { categoryName: 'basic', symbolName: ['y', 'x', 'add'] }, { categoryName: 'keypad', symbolName: ['two'] }, { categoryName: 'basic', symbolName: ['x', 'square', 'y', 'square', 'add'] }, { categoryName: 'keypad', symbolName: ['four'] }]);
185
+ equationEditorFlyout.steps.clickOnOkButton();
186
+ textEntryMathPage.steps.switchToGradingView();
187
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
188
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
189
+ });
190
+
191
+ it('When the user enters a equation with iota in \'Specify correct answer\' response field and then the user enters the exact same equation then it should be treated as correct', () => {
192
+ textEntryMathPage.steps.switchToEditTab();
193
+ textEntryMathPage.steps.clearAnswerInputFieldSpecifyCorrectAnswer(0);
194
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
195
+ textEntryMathPage.steps.addInputToResponseAnswerInputFieldSpecifyCorrectAnswer(0, '-38-9i');
196
+ textEntryMathPage.steps.switchToPreviewTab();
197
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
198
+ equationEditorFlyout.steps.enterTextInPreviewInputField('-38-9i');
199
+ equationEditorFlyout.steps.clickOnOkButton();
200
+ textEntryMathPage.steps.switchToGradingView();
201
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
202
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
203
+ });
204
+
205
+ it('When the user enters a equation with iota in \'Specify correct answer\' response field and then the user enters the same equation but in a different format then it should be treated as correct', () => {
206
+ textEntryMathPage.steps.resetQuestionPreview();
207
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
208
+ equationEditorFlyout.steps.enterTextInPreviewInputField('-(38+9i)');
209
+ equationEditorFlyout.steps.clickOnOkButton();
210
+ textEntryMathPage.steps.switchToGradingView();
211
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
212
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
213
+ });
214
+
215
+ it('When the user enters a equation with iota in \'Specify correct answer\' response field and then the user enters the same equation but in a different order then it should be treated as correct', () => {
216
+ textEntryMathPage.steps.resetQuestionPreview();
217
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
218
+ equationEditorFlyout.steps.enterTextInPreviewInputField('-9i-38');
219
+ equationEditorFlyout.steps.clickOnOkButton();
220
+ textEntryMathPage.steps.switchToGradingView();
221
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
222
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
223
+ });
224
+
225
+ it('When the user enters a equation with parenthesis equation with epsilon in \'Specify correct answer\' response field and then the user enters the exact same equation then it should be treated as correct', () => {
226
+ textEntryMathPage.steps.switchToEditTab();
227
+ textEntryMathPage.steps.clearAnswerInputFieldSpecifyCorrectAnswer(0);
228
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
229
+ textEntryMathPage.steps.selectEquationEditorOptionFromCKEditorToolbar();
230
+ equationEditorFlyout.steps.enterTextInPreviewInputField('100,000')
231
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'basic', symbolName: ['dotMultiplier'] }]);
232
+ equationEditorFlyout.steps.enterTextInPreviewInputField('((1.3)^10)^')
233
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'calculus', symbolName: ['epsilon'] }]);
234
+ equationEditorFlyout.steps.clickOnOkButton();
235
+ textEntryMathPage.steps.switchToPreviewTab();
236
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
237
+ equationEditorFlyout.steps.enterTextInPreviewInputField('100,000')
238
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'basic', symbolName: ['dotMultiplier'] }]);
239
+ equationEditorFlyout.steps.enterTextInPreviewInputField('((1.3)^10)^')
240
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'calculus', symbolName: ['epsilon'] }]);
241
+ equationEditorFlyout.steps.clickOnOkButton();
242
+ textEntryMathPage.steps.switchToGradingView();
243
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
244
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
245
+ });
246
+
247
+ it('When the user enters a factored equation in \'Specify correct answer\' response field and then the user enters the same value but different form then it should be treated as correct', () => {
248
+ textEntryMathPage.steps.resetQuestionPreview();
249
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
250
+ equationEditorFlyout.steps.enterTextInPreviewInputField('100,000')
251
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'basic', symbolName: ['dotMultiplier'] }]);
252
+ equationEditorFlyout.steps.enterTextInPreviewInputField('([1.3]^10)^')
253
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'calculus', symbolName: ['epsilon'] }]);
254
+ equationEditorFlyout.steps.clickOnOkButton();
255
+ textEntryMathPage.steps.switchToGradingView();
256
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
257
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
258
+ });
259
+
260
+ it('When the user enters a factored equation in \'Specify correct answer\' response field and then the user enters the a different value then it should be treated as incorrect', () => {
261
+ textEntryMathPage.steps.resetQuestionPreview();
262
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
263
+ equationEditorFlyout.steps.enterTextInPreviewInputField('100000')
264
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'basic', symbolName: ['dotMultiplier'] }]);
265
+ equationEditorFlyout.steps.enterTextInPreviewInputField('(1.3)^10^')
266
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'calculus', symbolName: ['epsilon'] }]);
267
+ equationEditorFlyout.steps.clickOnOkButton();
268
+ textEntryMathPage.steps.switchToGradingView();
269
+ textEntryMathPage.steps.verifyIncorrectResponseIcon(0);
270
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
271
+ });
272
+
273
+ it('When the user enters a equation with trigonometric functions in \'Specify correct answer\' response field and then the user enters the exact same equation then it should be treated as correct', () => {
274
+ textEntryMathPage.steps.switchToEditTab();
275
+ textEntryMathPage.steps.clearAnswerInputFieldSpecifyCorrectAnswer(0);
276
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
277
+ textEntryMathPage.steps.selectEquationEditorOptionFromCKEditorToolbar();
278
+ equationEditorFlyout.steps.enterTextInPreviewInputField('-150');
279
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'trigonometry', symbolName: ['sin'] }, { categoryName: 'delimiters', symbolName: ['groupInParathesis'] }, { categoryName: 'greek', symbolName: ['theta'] }, { categoryName: 'basic', symbolName: ['add', 'fraction'] }, { categoryName: 'greek', symbolName: ['pi'] }]);
280
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['2']);
281
+ equationEditorFlyout.steps.enterTextInPreviewInputField('+260');
282
+ equationEditorFlyout.steps.clickOnOkButton();
283
+ textEntryMathPage.steps.switchToPreviewTab();
284
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
285
+ equationEditorFlyout.steps.enterTextInPreviewInputField('-150')
286
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'trigonometry', symbolName: ['sin'] }, { categoryName: 'delimiters', symbolName: ['groupInParathesis'] }, { categoryName: 'greek', symbolName: ['theta'] }, { categoryName: 'basic', symbolName: ['add', 'fraction'] }, { categoryName: 'greek', symbolName: ['pi'] }]);
287
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['2']);
288
+ equationEditorFlyout.steps.enterTextInPreviewInputField('+260');
289
+ equationEditorFlyout.steps.clickOnOkButton();
290
+ textEntryMathPage.steps.switchToGradingView();
291
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
292
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
293
+ });
294
+
295
+ it('When the user enters a equation with trigonometric functions in \'Specify correct answer\' response field and then the user enters the same equation in different order then it should be treated as correct', () => {
296
+ textEntryMathPage.steps.resetQuestionPreview();
297
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
298
+ equationEditorFlyout.steps.enterTextInPreviewInputField('-150');
299
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'trigonometry', symbolName: ['sin'] }, { categoryName: 'delimiters', symbolName: ['groupInParathesis'] }, { categoryName: 'basic', symbolName: ['fraction'] }, { categoryName: 'greek', symbolName: ['pi'] }]);
300
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['2{rightarrow}+']);
301
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'greek', symbolName: ['theta'] }])
302
+ equationEditorFlyout.steps.enterTextInPreviewInputField('+260');
303
+ equationEditorFlyout.steps.clickOnOkButton();
304
+ textEntryMathPage.steps.switchToGradingView();
305
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
306
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
307
+ });
308
+
309
+ it('When the user enters a equation with trigonometric functions in \'Specify correct answer\' response field and then the user enters the same equation without specified symbols then it should be treated as incorrect', () => {
310
+ textEntryMathPage.steps.resetQuestionPreview();
311
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
312
+ equationEditorFlyout.steps.enterTextInPreviewInputField('-150');
313
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'trigonometry', symbolName: ['sin'] }, { categoryName: 'delimiters', symbolName: ['groupInParathesis'] }, { categoryName: 'greek', symbolName: ['theta'] }, { categoryName: 'keypad', symbolName: ['add', 'nine', 'zero'] }]);
314
+ equationEditorFlyout.steps.enterTextInPreviewInputField('+260');
315
+ equationEditorFlyout.steps.clickOnOkButton();
316
+ textEntryMathPage.steps.switchToGradingView();
317
+ textEntryMathPage.steps.verifyIncorrectResponseIcon(0);
318
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
319
+ });
320
+
321
+ it('When the user enters a equation using derivatives in \'Specify correct answer\' and the user enters the exact same equation then it should be treated as correct', () => {
322
+ textEntryMathPage.steps.switchToEditTab();
323
+ textEntryMathPage.steps.clearAnswerInputFieldSpecifyCorrectAnswer(0);
324
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
325
+ textEntryMathPage.steps.selectEquationEditorOptionFromCKEditorToolbar();
326
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'calculus', symbolName: ['derivative'] }, { categoryName: 'basic', symbolName: ['x', 'square'] }]);
327
+ equationEditorFlyout.steps.clickOnOkButton();
328
+ textEntryMathPage.steps.switchToPreviewTab();
329
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
330
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'calculus', symbolName: ['derivative'] }, { categoryName: 'basic', symbolName: ['x', 'square'] }]);
331
+ equationEditorFlyout.steps.clickOnOkButton();
332
+ textEntryMathPage.steps.switchToGradingView();
333
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
334
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
335
+ });
336
+
337
+ it('When the user enters a equation using derivatives in \'Specify correct answer\' and the user enters the same equation but different format then it should be treated as correct', () => {
338
+ textEntryMathPage.steps.resetQuestionPreview();
339
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
340
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'calculus', symbolName: ['derivative'] }, { categoryName: 'basic', symbolName: ['x', 'dotMultiplier', 'x'] }]);
341
+ equationEditorFlyout.steps.clickOnOkButton();
342
+ textEntryMathPage.steps.switchToGradingView();
343
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
344
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
345
+ });
346
+
347
+ it('When the user enters a equation using integration in \'Specify correct answer\' and the user enters the exact same equation then it should be treated as correct', () => {
348
+ textEntryMathPage.steps.switchToEditTab();
349
+ textEntryMathPage.steps.clearAnswerInputFieldSpecifyCorrectAnswer(0);
350
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
351
+ textEntryMathPage.steps.selectEquationEditorOptionFromCKEditorToolbar();
352
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'calculus', symbolName: ['integral'] }, { categoryName: 'basic', symbolName: ['x'] }]);
353
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['1', '0']);
354
+ equationEditorFlyout.steps.clickOnOkButton();
355
+ textEntryMathPage.steps.switchToPreviewTab();
356
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
357
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'calculus', symbolName: ['integral'] }, { categoryName: 'basic', symbolName: ['x'] }]);
358
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['1', '0']);
359
+ equationEditorFlyout.steps.clickOnOkButton();
360
+ textEntryMathPage.steps.switchToGradingView();
361
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
362
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
363
+ });
364
+
365
+ it('When the user enters a equation using integration in \'Specify correct answer\' and the user enters the same equation with coefficients then it should be treated as correct', () => {
366
+ textEntryMathPage.steps.resetQuestionPreview();
367
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
368
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'calculus', symbolName: ['integral'] }, { categoryName: 'keypad', symbolName: ['one'] }, { categoryName: 'basic', symbolName: ['x'] }]);
369
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['1', '0']);
370
+ equationEditorFlyout.steps.clickOnOkButton();
371
+ textEntryMathPage.steps.switchToGradingView();
372
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
373
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
374
+ });
375
+
376
+ it('When the user enters a equation using matrices in \'Specify correct answer\' and the user enters the exact same equation then it should be treated as correct', () => {
377
+ textEntryMathPage.steps.switchToEditTab();
378
+ textEntryMathPage.steps.clearAnswerInputFieldSpecifyCorrectAnswer(0);
379
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
380
+ textEntryMathPage.steps.selectEquationEditorOptionFromCKEditorToolbar();
381
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'matrices', symbolName: ['twoByTwoMatrixBoundedBrackets'] }]);
382
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['2', '1', '0', '3']);
383
+ equationEditorFlyout.steps.enterTextInPreviewInputField('+')
384
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'matrices', symbolName: ['twoByTwoMatrixBoundedBrackets'] }]);
385
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['3', '1', '2', '4']);
386
+ equationEditorFlyout.steps.clickOnOkButton();
387
+ textEntryMathPage.steps.switchToPreviewTab();
388
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
389
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'matrices', symbolName: ['twoByTwoMatrixBoundedBrackets'] }]);
390
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['3', '1', '2', '4']);
391
+ equationEditorFlyout.steps.enterTextInPreviewInputField('+')
392
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'matrices', symbolName: ['twoByTwoMatrixBoundedBrackets'] }]);
393
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['2', '1', '0', '3']);
394
+ equationEditorFlyout.steps.clickOnOkButton();
395
+ textEntryMathPage.steps.switchToGradingView();
396
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
397
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
398
+ });
399
+
400
+ it('When the user enters a equation using matrices in \'Specify correct answer\' and the user enters the addition of two matrices then it should be treated as correct', () => {
401
+ textEntryMathPage.steps.resetQuestionPreview();
402
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
403
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'matrices', symbolName: ['twoByTwoMatrixBoundedBrackets'] }]);
404
+ equationEditorFlyout.steps.enterTextInFirstEmptyBox(['5', '2', '2', '7']);
405
+ equationEditorFlyout.steps.clickOnOkButton();
406
+ textEntryMathPage.steps.switchToGradingView();
407
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
408
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
409
+ });
410
+ });
411
+ });