itemengine-cypress-automation 1.0.129 → 1.0.131-updateILCrepo6March-02c78d1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. package/cypress/e2e/ILC/ContentBlocks/editTabBasics.js +210 -0
  2. package/cypress/e2e/ILC/ContentBlocks/previewContents.smoke.js +91 -0
  3. package/cypress/e2e/ILC/ContentBlocks/styleAndLayoutCustomizationSection.js +392 -0
  4. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -1
  5. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +1 -1
  6. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +2 -1
  7. package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +2 -1
  8. package/cypress/e2e/ILC/EssayResponse/essayResponseSpecialCharacters.js +1 -0
  9. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/allOrNothingGroupedScoring.js +152 -0
  10. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +196 -0
  11. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/allOrNothingWithCorrectPointsEqualToAlternativePoints.js +195 -0
  12. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +288 -0
  13. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/manuallyAndNonScored.js +141 -0
  14. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +245 -0
  15. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialDifferentWeightsBasic.js +413 -0
  16. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +218 -0
  17. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +245 -0
  18. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialEqualWeightsBasic.js +163 -0
  19. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +224 -0
  20. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +196 -0
  21. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +224 -0
  22. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/responseLevelAlternateAnswerBasicScoring.js +83 -0
  23. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/clickAndDrop.js +653 -0
  24. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/draggableOptions.js +180 -0
  25. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/editTabScoringSection.js +229 -0
  26. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/specifyCorrectAnswerSection.js +90 -0
  27. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/switchingCasesBetweenOptionsLayout.js +50 -0
  28. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +204 -0
  29. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +204 -0
  30. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +298 -0
  31. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/allOrNothingPenaltyScoring.js +63 -0
  32. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/manuallyAndNonScored.js +111 -0
  33. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +231 -0
  34. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/partialDifferentWeightsBasic.js +90 -0
  35. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +300 -0
  36. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +232 -0
  37. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +231 -0
  38. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/partialEqualWeightsBasic.js +138 -0
  39. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +213 -0
  40. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +186 -0
  41. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +214 -0
  42. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownAndDropdownMenuSection.js +161 -0
  43. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +328 -0
  44. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editTabBasicSection.js +144 -0
  45. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editTabScoringSection.js +250 -0
  46. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/headerSection.js +75 -0
  47. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +194 -0
  48. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/specifyCorrectAnswerSection.js +74 -0
  49. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/studentViewSettings.js +188 -0
  50. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/clickAndDrop.js +8 -8
  51. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabScoring.js +0 -1
  52. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/specifyCorrectAnswerSection.js +4 -2
  53. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +1 -52
  54. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +3 -211
  55. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/setLimitSection.js +39 -3
  56. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/specialCharactersSection.js +1 -8
  57. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/specifyCorrectAnswerSection.js +3 -1
  58. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/studentViewSettings.js +2 -50
  59. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/conditionalCheckboxScoring.js +325 -0
  60. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsBasic.js +1 -146
  61. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +300 -0
  62. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/responseLevelAlternateAnswersBasicScoring.js +78 -0
  63. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +265 -0
  64. package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +75 -0
  65. package/cypress/e2e/ILC/FillInTheGapsTextNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +194 -0
  66. package/cypress/e2e/ILC/FillInTheGapsTextNew/responseAnswersAndAcceptedStudentInput.js +56 -0
  67. package/cypress/e2e/ILC/FillInTheGapsTextNew/setLimitSection.js +40 -2
  68. package/cypress/e2e/ILC/FillInTheGapsTextNew/specialCharactersSection.js +249 -0
  69. package/cypress/e2e/ILC/FillInTheGapsTextNew/specifyCorrectAnswerSection.js +64 -0
  70. package/cypress/e2e/ILC/FillInTheGapsTextNew/studentViewSettings.js +128 -0
  71. package/cypress/e2e/ILC/Graphing/allOrNothingForAllViews.smoke.js +889 -0
  72. package/cypress/e2e/ILC/Graphing/checkAnswerFunctionalityForAllViews.smoke.js +168 -0
  73. package/cypress/e2e/ILC/Graphing/gradingViewAndCorrectAnswerView.smoke.js +203 -0
  74. package/cypress/e2e/ILC/Graphing/previewContentsForAllViews.smoke.js +222 -0
  75. package/cypress/e2e/ILC/SimpleCalculator/calculatorFunctionality.js +349 -0
  76. package/cypress/e2e/ILC/SimpleCalculator/previewContents.smoke.js +132 -0
  77. package/cypress/e2e/ILC/UploadResponse/previewContentsForAllViews.smoke.js +35 -7
  78. package/cypress/e2e/ILC/UploadResponse/studentViewSettingsSection.js +213 -0
  79. package/cypress/e2e/ILC/UploadResponse/uploadResponseAdditionalSettings.js +41 -0
  80. package/cypress/e2e/ILC/UploadResponse/uploadResponseEditTabBasicSections.js +377 -0
  81. package/cypress/e2e/ILC/UploadResponse/uploadResponsePreview.js +161 -0
  82. package/cypress/e2e/ILC/UploadResponse/uplodResponsePreviewUploadedFileProperties.js +250 -0
  83. package/cypress/fixtures/drawingToolbarOptionsAdditionalOptionsAndSpecialAndMathCharacters.js +2 -2
  84. package/cypress/fixtures/theme/ilc.json +6 -1
  85. package/cypress/fixtures/uploadResponseFileType.js +5 -0
  86. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +13 -13
  87. package/cypress/pages/components/customizeSpecialCharacterComponent.js +24 -6
  88. package/cypress/pages/components/draggableOptionContainer.js +1 -0
  89. package/cypress/pages/components/fillInTheGapsDragAndDropCommonComponents.js +42 -4
  90. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +149 -5
  91. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +954 -77
  92. package/cypress/pages/components/questionInputFieldComponent.js +1 -1
  93. package/cypress/pages/components/questionInstructionsComponent.js +2 -1
  94. package/cypress/pages/contentBlocksPage.js +515 -0
  95. package/cypress/pages/drawingResponsePage.js +2 -2
  96. package/cypress/pages/fillInTheGapsDragAndDropPage.js +359 -3
  97. package/cypress/pages/fillInTheGapsDropdownPage.js +21 -1
  98. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +5 -57
  99. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +3 -24
  100. package/cypress/pages/fillInTheGapsOverImageTextPage.js +1 -435
  101. package/cypress/pages/fillInTheGapsTextPage.js +9 -2
  102. package/cypress/pages/graphingPage.js +484 -0
  103. package/cypress/pages/index.js +4 -1
  104. package/cypress/pages/simpleCalculatorPage.js +310 -0
  105. package/cypress/pages/uploadResponsePage.js +260 -92
  106. package/package.json +2 -2
  107. package/cypress/e2e/ILC/Passage/multipageContentEditTab.js +0 -242
  108. package/cypress/e2e/ILC/Passage/passageAdditionalSettings.js +0 -99
  109. package/cypress/e2e/ILC/Passage/passageEditTab.js +0 -241
  110. package/cypress/e2e/ILC/Passage/passageHeaderSection.js +0 -73
  111. package/cypress/e2e/ILC/Passage/passagePreviewTab.js +0 -246
@@ -0,0 +1,349 @@
1
+ import { simpleCalculatorPage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+ import utilities from "../../../support/helpers/utilities";
4
+ const css = Cypress.env('css');
5
+
6
+ describe('Simple calculator - Functionality cases, Undo/Redo Controls, Edge cases', () => {
7
+ before(() => {
8
+ cy.loginAs('admin');
9
+ });
10
+
11
+ describe('Simple calculator - Functionality cases', () => {
12
+ abortEarlySetup();
13
+ before(() => {
14
+ simpleCalculatorPage.steps.navigateToCreateResource('simple calculator');
15
+ simpleCalculatorPage.steps.selectCustomizeCalculatorSettingsParenthesesButton();
16
+ simpleCalculatorPage.steps.selectCustomizeCalculatorSettingsPiButton();
17
+ simpleCalculatorPage.steps.selectCustomizeCalculatorSettingsSquareButton();
18
+ simpleCalculatorPage.steps.selectCustomizeCalculatorSettingsReciprocalButton();
19
+ simpleCalculatorPage.steps.selectCustomizeCalculatorSettingsPercentageButton();
20
+ simpleCalculatorPage.steps.selectCustomizeCalculatorSettingsSquareRootButton();
21
+ simpleCalculatorPage.steps.selectCustomizeCalculatorSettingsExponentButton();
22
+ simpleCalculatorPage.steps.selectCustomizeCalculatorSettingsSignChangeButton();
23
+ simpleCalculatorPage.steps.switchToPreviewTab();
24
+ });
25
+
26
+ it('The user should be able to perform addition operation correctly', () => {
27
+ simpleCalculatorPage.steps.clickOnACalculatorButton('one');
28
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
29
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
30
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
31
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('1+2 =');
32
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('3');
33
+ });
34
+
35
+ it('When the user clicks on the "All clear" button, the calculator display should reset', () => {
36
+ simpleCalculatorPage.steps.clickOnACalculatorButton('all clear');
37
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('');
38
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('');
39
+ });
40
+
41
+ it('When the user adds any number or mathematical operator and clicks on the "delete" button, the latest added symbol should get deleted', ()=> {
42
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
43
+ simpleCalculatorPage.steps.clickOnACalculatorButton('subtraction');
44
+ simpleCalculatorPage.steps.clickOnACalculatorButton('delete');
45
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('2');
46
+ });
47
+
48
+ it('The user should be able to perform subtraction operation correctly', () => {
49
+ simpleCalculatorPage.steps.resetCalculator();
50
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
51
+ simpleCalculatorPage.steps.clickOnACalculatorButton('subtraction');
52
+ simpleCalculatorPage.steps.clickOnACalculatorButton('one');
53
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
54
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('2-1 =');
55
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('1');
56
+ });
57
+
58
+ it('The user should be able to perform multiplication operation correctly', () => {
59
+ simpleCalculatorPage.steps.resetCalculator();
60
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
61
+ simpleCalculatorPage.steps.clickOnACalculatorButton('multiplication');
62
+ simpleCalculatorPage.steps.clickOnACalculatorButton('four');
63
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
64
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('2×4 =');
65
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('8');
66
+ });
67
+
68
+ it('The user should be able to perform division operation correctly', () => {
69
+ simpleCalculatorPage.steps.resetCalculator();
70
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
71
+ simpleCalculatorPage.steps.clickOnACalculatorButton('division');
72
+ simpleCalculatorPage.steps.clickOnACalculatorButton('four');
73
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
74
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('2÷4 =');
75
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('0.5');
76
+ });
77
+
78
+ it('When the user performs a mathematical operation that contains parentheses, the calculator should handle parenthesis correctly', () => {
79
+ simpleCalculatorPage.steps.resetCalculator();
80
+ simpleCalculatorPage.steps.clickOnACalculatorButton('three');
81
+ simpleCalculatorPage.steps.clickOnACalculatorButton('multiplication');
82
+ simpleCalculatorPage.steps.clickOnACalculatorButton('left parenthesis');
83
+ simpleCalculatorPage.steps.clickOnACalculatorButton('four');
84
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
85
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
86
+ simpleCalculatorPage.steps.clickOnACalculatorButton('right parenthesis');
87
+ simpleCalculatorPage.steps.clickOnACalculatorButton('division');
88
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
89
+ simpleCalculatorPage.steps.clickOnACalculatorButton('subtraction');
90
+ simpleCalculatorPage.steps.clickOnACalculatorButton('five');
91
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
92
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('3×(4+2)÷2-5 =');
93
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('4');
94
+ });
95
+
96
+ it('When the user performs a mathematical operation that contains pi, the calculator should handle pi correctly', () => {
97
+ simpleCalculatorPage.steps.resetCalculator();
98
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
99
+ simpleCalculatorPage.steps.clickOnACalculatorButton('multiplication');
100
+ simpleCalculatorPage.steps.clickOnACalculatorButton('pi');
101
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
102
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('2×π =');
103
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('6.283185');
104
+ });
105
+
106
+ it('When the user performs a mathematical operation that contains square of a number, the calculator should handle square correctly', () => {
107
+ simpleCalculatorPage.steps.resetCalculator();
108
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
109
+ simpleCalculatorPage.steps.clickOnACalculatorButton('square');
110
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
111
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('2² =');
112
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('4');
113
+ });
114
+
115
+ it('When the user performs a mathematical operation that contains reciprocal of a number, the calculator should handle reciprocal correctly', () => {
116
+ simpleCalculatorPage.steps.resetCalculator();
117
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
118
+ simpleCalculatorPage.steps.clickOnACalculatorButton('reciprocal');
119
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
120
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('2⁻¹ =');
121
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('0.5');
122
+ });
123
+
124
+ it('When the user performs a mathematical operation that contains percentage of a number, the calculator should handle percentage correctly', () => {
125
+ simpleCalculatorPage.steps.resetCalculator();
126
+ simpleCalculatorPage.steps.clickOnACalculatorButton('one');
127
+ simpleCalculatorPage.steps.clickOnACalculatorButton('zero');
128
+ simpleCalculatorPage.steps.clickOnACalculatorButton('zero');
129
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
130
+ simpleCalculatorPage.steps.clickOnACalculatorButton('one');
131
+ simpleCalculatorPage.steps.clickOnACalculatorButton('zero');
132
+ simpleCalculatorPage.steps.clickOnACalculatorButton('percentage');
133
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
134
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('100+10% =');
135
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('110');
136
+ });
137
+
138
+ it('When the user performs a mathematical operation that contains square root of a number, the calculator should handle square root correctly', () => {
139
+ simpleCalculatorPage.steps.resetCalculator();
140
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
141
+ simpleCalculatorPage.steps.clickOnACalculatorButton('square root');
142
+ simpleCalculatorPage.steps.clickOnACalculatorButton('three');
143
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
144
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('2√(3) =');
145
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('3.464102');
146
+ });
147
+
148
+ it('When the user performs a mathematical operation that contains exponent of a number, the calculator should handle exponent correctly', () => {
149
+ simpleCalculatorPage.steps.resetCalculator();
150
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
151
+ simpleCalculatorPage.steps.clickOnACalculatorButton('exponent');
152
+ simpleCalculatorPage.steps.clickOnACalculatorButton('three');
153
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
154
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('2^3 =');
155
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('8');
156
+ });
157
+
158
+ it('When the user performs a mathematical operation that contains sign change, the calculator should handle sign change correctly', () => {
159
+ simpleCalculatorPage.steps.resetCalculator();
160
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
161
+ simpleCalculatorPage.steps.clickOnACalculatorButton('sign change');
162
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('(-2)');
163
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
164
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('(-2) =');
165
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('-2');
166
+ });
167
+
168
+ it('When the user resets the calculator and then clicks on the "Check history" button, the button should be in selected state and a side panel should open with all the last performed calculations', () => {
169
+ simpleCalculatorPage.steps.resetCalculator();
170
+ simpleCalculatorPage.steps.selectCheckHistoryButton();
171
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.calculatorHistoryPanel(), 'visible');
172
+ simpleCalculatorPage.steps.verifyCalculatorHistory(0, '1+2 =', '3');
173
+ simpleCalculatorPage.steps.verifyCalculatorHistory(1, '2-1 =', '1');
174
+ simpleCalculatorPage.steps.verifyCalculatorHistory(2, '2×4 =', '8');
175
+ simpleCalculatorPage.steps.verifyCalculatorHistory(3, '2÷4 =', '0.5');
176
+ simpleCalculatorPage.steps.verifyCalculatorHistory(4, '3×(4+2)÷2-5 =', '4');
177
+ simpleCalculatorPage.steps.verifyCalculatorHistory(5, '2×π =', '6.283185');
178
+ simpleCalculatorPage.steps.verifyCalculatorHistory(6, '2² =', '4');
179
+ simpleCalculatorPage.steps.verifyCalculatorHistory(7, '2⁻¹ =', '0.5');
180
+ simpleCalculatorPage.steps.verifyCalculatorHistory(8, '100+10% =', '110');
181
+ simpleCalculatorPage.steps.verifyCalculatorHistory(9, '2√(3) =', '3.464102');
182
+ simpleCalculatorPage.steps.verifyCalculatorHistory(10, '2^3 =', '8');
183
+ simpleCalculatorPage.steps.verifyCalculatorHistory(11, '(-2) =', '-2');
184
+ });
185
+
186
+ it('CSS of the history panel', { tags: 'css' }, () => {
187
+ utilities.verifyCSS(simpleCalculatorPage.calculatorWrapper(), {
188
+ 'background-color': css.color.darkThemeBg,
189
+ 'border': `1px solid ${css.color.activeComponentBorder}`
190
+ });
191
+ utilities.verifyCSS(simpleCalculatorPage.historyPanelResult(), {
192
+ 'color': css.color.whiteText,
193
+ 'font-size': css.fontSize.heading,
194
+ 'font-weight': css.fontWeight.bold
195
+ });
196
+ utilities.verifyCSS(simpleCalculatorPage.historyPanelEquation(), {
197
+ 'color': css.color.liTextSelectedBg,
198
+ 'font-size': css.fontSize.small,
199
+ 'font-weight': css.fontWeight.regular
200
+ });
201
+ });
202
+
203
+ it('When the user clicks on the "Check history" button again, the history panel should collapse', () => {
204
+ simpleCalculatorPage.steps.unselectCheckHistoryButton();
205
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.calculatorHistoryPanel(), 'notExist');
206
+ });
207
+ });
208
+
209
+ describe('Simple calculator - Undo/Redo Controls', () => {
210
+ abortEarlySetup();
211
+ before(() => {
212
+ simpleCalculatorPage.steps.navigateToCreateResource('simple calculator');
213
+ simpleCalculatorPage.steps.switchToPreviewTab();
214
+ });
215
+
216
+ it('When the user has not made any actions, the \'Undo\' and \'Redo\' buttons should be in disabled state', () => {
217
+ simpleCalculatorPage.steps.verifyUndoButtonDisabled();
218
+ simpleCalculatorPage.steps.verifyRedoButtonDisabled();
219
+ });
220
+
221
+ it('When the user makes any actions, the \'Undo\' button should get enabled but the \'Redo\' button should continue to stay in disabled state', () => {
222
+ simpleCalculatorPage.steps.clickOnACalculatorButton('one');
223
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
224
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
225
+ simpleCalculatorPage.steps.verifyUndoButtonEnabled();
226
+ simpleCalculatorPage.steps.verifyRedoButtonDisabled();
227
+ });
228
+
229
+ it('When the user clicks on the \'Undo\' button, it should undo the latest action and when the user performs any undo action, the redo button should get enabled', () => {
230
+ simpleCalculatorPage.steps.clickOnACalculatorButton('undo');
231
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('1+');
232
+ simpleCalculatorPage.steps.verifyRedoButtonEnabled();
233
+ });
234
+
235
+ it('When the user has performed an undo action, the user should be able to redo it by clicking on the \'Redo\' button', () => {
236
+ simpleCalculatorPage.steps.clickOnACalculatorButton('redo');
237
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('1+2');
238
+ });
239
+
240
+ it('When the user reaches the initial state by performing undo actions, the \'Undo\' button should get disabled and when the user reaches the latest state by performing redo actions, the \'Redo\' button should get disabled', () => {
241
+ simpleCalculatorPage.steps.clickOnACalculatorButton('undo');
242
+ simpleCalculatorPage.steps.clickOnACalculatorButton('undo');
243
+ simpleCalculatorPage.steps.clickOnACalculatorButton('undo');
244
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('');
245
+ simpleCalculatorPage.steps.verifyUndoButtonDisabled();
246
+ simpleCalculatorPage.steps.clickOnACalculatorButton('redo');
247
+ simpleCalculatorPage.steps.clickOnACalculatorButton('redo');
248
+ simpleCalculatorPage.steps.clickOnACalculatorButton('redo');
249
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('1+2');
250
+ });
251
+
252
+ it('The undo button should get disabled after a certain number of undo actions (10 times)', () => {
253
+ simpleCalculatorPage.steps.resetQuestionPreview();
254
+ cy.log('Pre step: Performing 11 actions first')
255
+ simpleCalculatorPage.steps.clickOnACalculatorButton('one');
256
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
257
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
258
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
259
+ simpleCalculatorPage.steps.clickOnACalculatorButton('three');
260
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
261
+ simpleCalculatorPage.steps.clickOnACalculatorButton('four');
262
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
263
+ simpleCalculatorPage.steps.clickOnACalculatorButton('five');
264
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
265
+ simpleCalculatorPage.steps.clickOnACalculatorButton('six');
266
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
267
+ simpleCalculatorPage.steps.clickOnACalculatorButton('seven');
268
+ for (var index = 0; index < 10; index++) {
269
+ simpleCalculatorPage.steps.clickOnACalculatorButton('undo');
270
+ };
271
+ simpleCalculatorPage.steps.verifyUndoButtonDisabled();
272
+ });
273
+ });
274
+
275
+ describe('Simple calculator - Edge cases', () => {
276
+ abortEarlySetup();
277
+ before(() => {
278
+ simpleCalculatorPage.steps.navigateToCreateResource('simple calculator');
279
+ simpleCalculatorPage.steps.switchToPreviewTab();
280
+ });
281
+
282
+ it('When the user performs a mathematical operation that contains an equation that contains division by zero, then the calculator should throw a "SyntaxError"', () => {
283
+ simpleCalculatorPage.steps.resetCalculator();
284
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
285
+ simpleCalculatorPage.steps.clickOnACalculatorButton('division');
286
+ simpleCalculatorPage.steps.clickOnACalculatorButton('zero');
287
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
288
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('');
289
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('Syntax Error');
290
+ });
291
+
292
+ it('When the user performs a mathematical operation that contains an equation with large numbers, the calculator should handle large numbers correctly', () => {
293
+ simpleCalculatorPage.steps.resetCalculator();
294
+ for (var index = 0; index < 16; index++) {
295
+ simpleCalculatorPage.steps.clickOnACalculatorButton('nine');
296
+ };
297
+ simpleCalculatorPage.steps.clickOnACalculatorButton('multiplication');
298
+ simpleCalculatorPage.steps.clickOnACalculatorButton('nine');
299
+ simpleCalculatorPage.steps.clickOnACalculatorButton('three');
300
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
301
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
302
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('999999999999999×932 =');
303
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('9.32(10^17)');
304
+ });
305
+
306
+ it('When the user performs a mathematical operation that contains an invalid input, then the calculator should throw a "SyntaxError"', () => {
307
+ simpleCalculatorPage.steps.resetCalculator();
308
+ simpleCalculatorPage.steps.clickOnACalculatorButton('multiplication');
309
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
310
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('');
311
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('Syntax Error');
312
+ });
313
+
314
+ it('When the user performs a mathematical operation that contains an equation with decimal points, the calculator should handle decimal inputs correctly', () => {
315
+ simpleCalculatorPage.steps.resetCalculator();
316
+ simpleCalculatorPage.steps.clickOnACalculatorButton('nine');
317
+ simpleCalculatorPage.steps.clickOnACalculatorButton('decimal');
318
+ simpleCalculatorPage.steps.clickOnACalculatorButton('three');
319
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
320
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
321
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
322
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('9.3+2 =');
323
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('11.3');
324
+ });
325
+
326
+ it('When the user performs a mathematical operation that contains an equation with consecutive operations without parentheses, the calculator should handle consecutive operations correctly', () => {
327
+ simpleCalculatorPage.steps.resetCalculator();
328
+ simpleCalculatorPage.steps.clickOnACalculatorButton('five');
329
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
330
+ simpleCalculatorPage.steps.clickOnACalculatorButton('three');
331
+ simpleCalculatorPage.steps.clickOnACalculatorButton('multiplication');
332
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
333
+ simpleCalculatorPage.steps.clickOnACalculatorButton('subtraction');
334
+ simpleCalculatorPage.steps.clickOnACalculatorButton('four');
335
+ simpleCalculatorPage.steps.clickOnACalculatorButton('division');
336
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
337
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
338
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('5+3×2-4÷2 =');
339
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('9');
340
+ });
341
+
342
+ it('When the user performs a mathematical operation that contains empty input, then the calculator should handle empty input gracefully', () => {
343
+ simpleCalculatorPage.steps.resetCalculator();
344
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
345
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('');
346
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('Syntax Error');
347
+ });
348
+ });
349
+ });
@@ -0,0 +1,132 @@
1
+ import { simpleCalculatorPage, itemPreviewPage, studentViewPage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+ import utilities from "../../../support/helpers/utilities";
4
+ let previewContentViews = ['Question preview', 'Item view', 'Item preview', 'Student view', 'Grading view', 'Correct answer view'];
5
+ const views = utilities.getViews(previewContentViews);
6
+ var itemReferenceID = "";
7
+ const css = Cypress.env('css');
8
+ //Failing due to https://redmine.zeuslearning.com/issues/563762
9
+ describe('Preview tab contents for all views for Simple calculator', () => {
10
+ before(() => {
11
+ cy.loginAs('admin');
12
+ });
13
+
14
+ views.forEach((view) => {
15
+ describe(`Preview tab contents - ${view}`, { tags: 'smoke' }, () => {
16
+ abortEarlySetup();
17
+ before(() => {
18
+ switch (view) {
19
+ case 'Question preview':
20
+ simpleCalculatorPage.steps.navigateToCreateResource('simple calculator');
21
+ simpleCalculatorPage.steps.switchToPreviewTab();
22
+ break;
23
+ case 'Item view':
24
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
25
+ break;
26
+ case 'Item preview':
27
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
28
+ simpleCalculatorPage.steps.switchToPreviewTab();
29
+ break;
30
+ case 'Student view':
31
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
32
+ break;
33
+ case 'Grading view':
34
+ cy.visit(`/item-engine/demo/render-item/grading-view/${utilities.base64Encoding(itemReferenceID)}`);
35
+ break;
36
+ case 'Correct answer view':
37
+ cy.visit(`/item-engine/demo/render-item/correct-answer-view/${utilities.base64Encoding(itemReferenceID)}`);
38
+ break;
39
+ default:
40
+ throw new Error('Invalid view');
41
+ }
42
+ });
43
+
44
+ after(() => {
45
+ if (view === 'Question preview') {
46
+ simpleCalculatorPage.steps.clickOnSaveQuestionButton();
47
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
48
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
49
+ }
50
+ if (view === 'Student view') {
51
+ studentViewPage.steps.submitResponse();
52
+ utilities.verifyElementVisibilityState(studentViewPage.buttonGoToGradingView(), 'visible');
53
+ }
54
+ });
55
+
56
+ it('Calculator should be displayed with an empty display and all the basic buttons along with a drag handle button', () => {
57
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.calculatorDragHandleButton(), 'visible');
58
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('');
59
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.checkHistoryButton(), 'visible');
60
+ simpleCalculatorPage.steps.verifyUndoButtonDisabled();
61
+ simpleCalculatorPage.steps.verifyRedoButtonDisabled();
62
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.allClearButton(), 'visible');
63
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.deleteButton(), 'visible');
64
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.divisionButton(), 'visible');
65
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.additionButton(), 'visible');
66
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.multiplicationButton(), 'visible');
67
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.subtractionButton(), 'visible');
68
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.equalToButton(), 'visible');
69
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.leftArrowButton(), 'visible');
70
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.rightArrowButton(), 'visible');
71
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.decimalButton(), 'visible');
72
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.zeroButton(), 'visible');
73
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.oneButton(), 'visible');
74
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.twoButton(), 'visible');
75
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.threeButton(), 'visible');
76
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.fourButton(), 'visible');
77
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.fiveButton(), 'visible');
78
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.sixButton(), 'visible');
79
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.sevenButton(), 'visible');
80
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.eightButton(), 'visible');
81
+ utilities.verifyElementVisibilityState(simpleCalculatorPage.nineButton(), 'visible');
82
+ });
83
+
84
+ it('The user should be able to perform basic mathematical operations', () => {
85
+ simpleCalculatorPage.steps.clickOnACalculatorButton('one');
86
+ simpleCalculatorPage.steps.clickOnACalculatorButton('addition');
87
+ simpleCalculatorPage.steps.clickOnACalculatorButton('two');
88
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('1+2');
89
+ simpleCalculatorPage.steps.clickOnACalculatorButton('equal to');
90
+ simpleCalculatorPage.steps.verifyCalculatorDisplayInputEquationValue('1+2 =');
91
+ simpleCalculatorPage.steps.verifyCalculatorDisplayResultValue('3');
92
+ });
93
+
94
+ it('CSS of preview contents', { tags: 'css' }, () => {
95
+ const darkThemeButtons = [simpleCalculatorPage.allClearButton, simpleCalculatorPage.deleteButton, simpleCalculatorPage.divisionButton, simpleCalculatorPage.additionButton, simpleCalculatorPage.multiplicationButton, simpleCalculatorPage.subtractionButton, simpleCalculatorPage.leftArrowButton, simpleCalculatorPage.rightArrowButton, simpleCalculatorPage.decimalButton];
96
+ const lightThemeButtons = [simpleCalculatorPage.oneButton, simpleCalculatorPage.twoButton, simpleCalculatorPage.threeButton, simpleCalculatorPage.fourButton, simpleCalculatorPage.fiveButton, simpleCalculatorPage.sixButton, simpleCalculatorPage.sevenButton, simpleCalculatorPage.eightButton, simpleCalculatorPage.nineButton];
97
+ const darkThemeCSS = {
98
+ 'background-color': css.color.darkThemeBtnBg,
99
+ 'border': `1px solid ${css.color.darkThemeBtnBorder}`
100
+ };
101
+ const lightThemeCSS = {
102
+ 'background-color': css.color.lightThemeBtnBg,
103
+ 'border': `1px solid ${css.color.lightThemeBtnBorder}`
104
+ }
105
+ utilities.verifyCSS(simpleCalculatorPage.calculatorWrapper(), {
106
+ 'background-color': css.color.darkThemeBg,
107
+ 'border': `1px solid ${css.color.activeComponentBorder}`
108
+ });
109
+ darkThemeButtons.forEach((button) => {
110
+ utilities.verifyCSS(button(), darkThemeCSS);
111
+ });
112
+ lightThemeButtons.forEach((button) => {
113
+ utilities.verifyCSS(button(), lightThemeCSS);
114
+ });
115
+ utilities.verifyCSS(simpleCalculatorPage.calculatorDisplay().find('.display-span'), {
116
+ 'color': css.color.whiteText,
117
+ 'font-size': '36px',
118
+ 'font-weight': css.fontWeight.bold
119
+ });
120
+ utilities.verifyCSS(simpleCalculatorPage.calculatorDisplayEquation(), {
121
+ 'color': css.color.liTextSelectedBg,
122
+ 'font-size': css.fontSize.small,
123
+ 'font-weight': css.fontWeight.regular
124
+ });
125
+ });
126
+
127
+ it('Accessibility of preview contents', {tags: 'a11y'}, () => {
128
+ cy.checkAccessibility(simpleCalculatorPage.calculatorWrapper());
129
+ });
130
+ });
131
+ });
132
+ });
@@ -5,6 +5,9 @@ const css = Cypress.env('css');
5
5
  let previewContentViews = ['Question preview', 'Item view', 'Item preview', 'Student view'];
6
6
  const views = utilities.getViews(previewContentViews);
7
7
  var itemReferenceID = "";
8
+ const fileTypes = ['CSV', 'Excel', 'GIF', 'JPG', 'Open Office', 'PDF', 'PNG', 'Powerpoint', 'Publisher', 'RTF', 'TXT', 'Word', 'XPS', 'ZIP'];
9
+ const fileTypesString = fileTypes.toString().replaceAll(',', ', ')
10
+ const infoIconTooltipText = 'Supported file formats: ' + fileTypesString + '.';
8
11
 
9
12
  describe('Create item page - Upload response : Preview contents', () => {
10
13
  before(() => {
@@ -51,7 +54,32 @@ describe('Create item page - Upload response : Preview contents', () => {
51
54
  utilities.verifyElementVisibilityState(uploadResponsePage.questionInstructionsText(), 'visible');
52
55
  });
53
56
 
54
- it('File limit label be visible', () => {
57
+ it('Upload response area should have a Cloud icon and text \'Drag & Drop files here or browse files on your device, Google Drive or capture an image\' should be displayed', () => {
58
+ utilities.verifyElementVisibilityState(uploadResponsePage.uploadCloudIcon(), 'visible');
59
+ utilities.verifyInnerText(uploadResponsePage.dragAndDropFilesText(), 'Drag & Drop files here');
60
+ utilities.verifyTextContent(uploadResponsePage.fileUploadOptionsLabel(), 'or browse files on your device, Google Drive or capture an image');
61
+ });
62
+
63
+ it('Computer and Google Drive icons should be displayed before link texts \'device\' and \'Google Drive\' respectively', () => {
64
+ uploadResponsePage.deviceLink()
65
+ .verifyPseudoClassBeforeProperty('content', '""');
66
+ utilities.verifyElementVisibilityState(uploadResponsePage.googleDriveLink().find('svg'), 'visible');
67
+ });
68
+
69
+ it('\'Supported file formats\' label should be displayed along with an info icon, hovering over the Supported file formats info icon a tooltip should be displayed with list of all the selected supported file types', () => {
70
+ utilities.verifyInnerText(uploadResponsePage.supportedFileFormatLabel(), 'Supported file formats');
71
+ utilities.verifyElementVisibilityState(uploadResponsePage.supportedFileInfoIcon(), 'visible');
72
+ uploadResponsePage.supportedFileInfoIcon()
73
+ .verifyTooltip(infoIconTooltipText);
74
+ });
75
+
76
+ it('Accessibility of \'Supported file formats\' tooltip', { tags: 'a11y' }, () => {
77
+ utilities.triggerMouseover(uploadResponsePage.supportedFileInfoIcon());
78
+ cy.checkAccessibility(uploadResponsePage.supportedFilesTooltip());
79
+ utilities.triggerMouseout(uploadResponsePage.supportedFileInfoIcon());
80
+ });
81
+
82
+ it('Uploaded file limit should be displayed on the bottom right corner of the response section and by default it should be 0', () => {
55
83
  uploadResponsePage.steps.verifyUploadedFileLimitCount(0, 3);
56
84
  });
57
85
 
@@ -64,14 +92,14 @@ describe('Create item page - Upload response : Preview contents', () => {
64
92
 
65
93
  it('When user deletes the uploaded file then uploaded file name, edit icon and delete button should disappear and file limit should be updated accordingly', () => {
66
94
  uploadResponsePage.steps.deleteFile();
67
- uploadResponsePage.steps.deleteFileButtonInDeleteFilePopup();
95
+ uploadResponsePage.steps.clickAcceptButtonInPopup();
68
96
  uploadResponsePage.steps.uploadedFileContentsNotExistPreviewTab();
69
97
  });
70
98
 
71
99
  it('When user uploads multiple files, then uploaded files should be visible in the uploaded file section and file limit should be updated accordingly', () => {
72
- uploadResponsePage.steps.uploadFile(['uploads/sample.pdf', 'uploads/sample.jpg']);
73
- uploadResponsePage.steps.verifyUploadedFileNameVisible('sample.pdf');
74
- uploadResponsePage.steps.verifyUploadedFileNameVisible('sample.jpg');
100
+ uploadResponsePage.steps.fileUploadAndVerify(['highlightImage.jpg', 'sample.xlsx'], 'drag and drop');
101
+ uploadResponsePage.steps.uploadedFileContentsPreviewTab(0, 'highlightImage.jpg');
102
+ uploadResponsePage.steps.uploadedFileContentsPreviewTab(1, 'sample.xlsx');
75
103
  uploadResponsePage.steps.verifyUploadedFileLimitCount(2, 3);
76
104
  utilities.verifyElementCount(uploadResponsePage.fileName(), 2);
77
105
  });
@@ -81,7 +109,7 @@ describe('Create item page - Upload response : Preview contents', () => {
81
109
  utilities.verifyElementVisibilityState(uploadResponsePage.dialogBox(), 'exist');
82
110
  uploadResponsePage.steps.enterTextInEditDisplayTextPopupInputField('image.csv');
83
111
  uploadResponsePage.steps.verifyTextInEditDisplayTextPopupInputField('image.csv');
84
- uploadResponsePage.steps.deleteFileButtonInDeleteFilePopup();
112
+ uploadResponsePage.steps.clickAcceptButtonInPopup();
85
113
  uploadResponsePage.steps.verifyUploadedFileName(0, 'image.csv');
86
114
  });
87
115
 
@@ -146,7 +174,7 @@ describe('Create item page - Upload response : Preview contents', () => {
146
174
 
147
175
  if (view != 'Question preview') {
148
176
  it('On clicking on the file name, user should be able to download the file', () => {
149
- cy.verifyUploadFilePreviewDownload('sample.jpg');
177
+ cy.verifyUploadFilePreviewDownload('highlightImage.jpg');
150
178
  cy.log('Added wait here to pause till the file download is complete');
151
179
  cy.wait(5000);
152
180
  });