itemengine-cypress-automation 1.0.113 → 1.0.115
Sign up to get free protection for your applications and to get access to all the features.
- package/cypress/e2e/ILC/AudioResponseNew/barRecorderStyle.js +489 -0
- package/cypress/e2e/ILC/AudioResponseNew/compactRecorderStyle.js +482 -0
- package/cypress/e2e/ILC/AudioResponseNew/customizePlaybackControls.js +488 -0
- package/cypress/e2e/ILC/AudioResponseNew/editAndPreviewTabScoringSection.js +92 -0
- package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +229 -0
- package/cypress/e2e/ILC/AudioResponseNew/gradingViewAndCorrectAnswerViewContents.smoke.js +1 -1
- package/cypress/e2e/ILC/AudioResponseNew/headerSection.js +67 -0
- package/cypress/e2e/ILC/AudioResponseNew/previewContentsForAllViews.smoke.js +1 -1
- package/cypress/e2e/ILC/AudioResponseNew/standardRecorderStyle.js +11 -11
- package/cypress/e2e/ILC/AudioResponseNew/studentViewSettings.js +529 -0
- package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions1.smoke.js +108 -190
- package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions2.js +83 -155
- package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions3.js +104 -315
- package/cypress/e2e/ILC/EssayResponseBasic/essayResponseBasicCustomizeFormattingOptions.js +121 -135
- package/cypress/e2e/ILC/EssayResponseMath/createItem.js +17 -0
- package/cypress/e2e/ILC/EssayResponseMath/mathCharacters.js +203 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/manuallyAndNonScored.js +121 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +236 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialDifferentWeightsBasic.js +255 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +237 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +236 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +2 -2
- package/cypress/e2e/ILC/ShortTextResponseNew/additionalSettings.js +43 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingBasicForAllViews.smoke.js +187 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingWithAlternativeAnswer.js +245 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/checkAnswerFunctionalityForAllViews.smoke.js +99 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/editTabScoringSection.js +97 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +74 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/manuallyAndNonScoredScoring.js +83 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/previewContentsForAllViews.smoke.js +109 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/specifyCorrectAnswerSection.js +66 -0
- package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +326 -0
- package/cypress/e2e/ILC/TextEntryMath/checkAnswerFunctionalityForAllViews.smoke.js +163 -0
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.js +8 -8
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.js +3 -3
- package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +154 -0
- package/cypress/pages/audioResponsePage.js +523 -66
- package/cypress/pages/components/autoScoredScoringPreviewTab.js +2 -0
- package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +6 -5
- package/cypress/pages/components/equationEditorFlyout.js +11 -0
- package/cypress/pages/components/essayResponseCommonComponents.js +290 -19
- package/cypress/pages/components/figOverImageCanvasComponent.js +1 -1
- package/cypress/pages/components/maximumRecorderLengthComponent.js +32 -15
- package/cypress/pages/components/playbackControlsBaseComponent.js +9 -1
- package/cypress/pages/components/questionInputFieldComponent.js +0 -7
- package/cypress/pages/dragAndDropIntoCategoriesPage.js +3 -3
- package/cypress/pages/essayResponseBasicPage.js +1 -26
- package/cypress/pages/essayResponsePage.js +21 -284
- package/cypress/pages/shortTextResponsePage.js +142 -103
- package/cypress/pages/textEntryMathPage.js +58 -7
- package/package.json +1 -1
- package/scripts/sorry-cypress.mjs +1 -1
@@ -0,0 +1,529 @@
|
|
1
|
+
import { dialogBoxBase } from "../../../pages";
|
2
|
+
import { audioResponsePage } from "../../../pages/audioResponsePage";
|
3
|
+
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
4
|
+
import utilities from "../../../support/helpers/utilities";
|
5
|
+
const css = Cypress.env('css');
|
6
|
+
|
7
|
+
describe('Create item page - Audio response: Student view settings', () => {
|
8
|
+
before(() => {
|
9
|
+
cy.loginAs('admin');
|
10
|
+
});
|
11
|
+
|
12
|
+
describe('Audio indicators : Edit tab', () => {
|
13
|
+
abortEarlySetup();
|
14
|
+
before(() => {
|
15
|
+
audioResponsePage.steps.navigateToCreateQuestion('audio response');
|
16
|
+
cy.barsPreLoaderWait();
|
17
|
+
});
|
18
|
+
|
19
|
+
audioResponsePage.tests.verifyStudentViewSettingsLabelAndCSS();
|
20
|
+
|
21
|
+
it('\'Audio indicators\' label should be displayed', () => {
|
22
|
+
utilities.verifyInnerText(audioResponsePage.audioIndicatorsLabel(), 'Audio indicators');
|
23
|
+
});
|
24
|
+
|
25
|
+
it('\'Audio indicators\' options - "Timer", "Progress indicator", "Audio wave" and "Volume meter" should be displayed. By default, all options should be in selected state', () => {
|
26
|
+
audioResponsePage.steps.verifyAudioIndicatorsTimeButtonSelectedState();
|
27
|
+
audioResponsePage.steps.verifyAudioIndicatorsProgressIndicatorButtonSelectedState();
|
28
|
+
audioResponsePage.steps.verifyAudioIndicatorsAudioWaveButtonSelectedState();
|
29
|
+
audioResponsePage.steps.verifyAudioIndicatorsVolumeMeterButtonSelectedState();
|
30
|
+
utilities.verifyInnerText(audioResponsePage.audioIndicatorsTimerButtonLabel(), 'Timer');
|
31
|
+
utilities.verifyInnerText(audioResponsePage.audioIndicatorsProgressIndicatorButtonLabel(), 'Progress indicator');
|
32
|
+
utilities.verifyInnerText(audioResponsePage.audioIndicatorsAudioWaveButtonLabel(), 'Audio wave');
|
33
|
+
utilities.verifyInnerText(audioResponsePage.audioIndicatorsVolumeMeterButtonLabel(), 'Volume meter');
|
34
|
+
});
|
35
|
+
|
36
|
+
it('"Limit number of retake" label and checkbox should be displayed. By default the checkbox should be unchecked', () => {
|
37
|
+
utilities.verifyInnerText(audioResponsePage.limitNumberOfRetakeCheckboxLabel(), 'Limit number of retake');
|
38
|
+
audioResponsePage.steps.limitNumberOfRetakeCheckboxUncheckedState();
|
39
|
+
});
|
40
|
+
|
41
|
+
it('CSS of \'Audio indicators\' section', { tags: 'css' }, () => {
|
42
|
+
utilities.verifyCSS(audioResponsePage.audioIndicatorsLabel(), {
|
43
|
+
'color': css.color.sectionHeading,
|
44
|
+
'font-size': css.fontSize.normal,
|
45
|
+
'font-weight': css.fontWeight.semibold
|
46
|
+
});
|
47
|
+
utilities.verifyCSS(audioResponsePage.audioIndicatorsTimerButton(), {
|
48
|
+
'color': css.color.defaultBackground,
|
49
|
+
'background-color': css.color.activeButtons,
|
50
|
+
'border': `1px solid ${css.color.activeButtons}`
|
51
|
+
});
|
52
|
+
utilities.verifyCSS(audioResponsePage.tickIconForOptionButtons(), {
|
53
|
+
'background-color': css.color.defaultBackground,
|
54
|
+
});
|
55
|
+
utilities.verifyCSS(audioResponsePage.tickIconForOptionButtons().find('[data-name="Icon feather-check"]'), {
|
56
|
+
'fill': css.color.activeButtons,
|
57
|
+
});
|
58
|
+
utilities.verifyCSS(audioResponsePage.audioIndicatorsProgressIndicatorButtonLabel(), {
|
59
|
+
'color': css.color.labels,
|
60
|
+
'font-size': css.fontSize.normal,
|
61
|
+
'font-weight': css.fontWeight.semibold
|
62
|
+
});
|
63
|
+
utilities.verifyCSS(audioResponsePage.limitNumberOfRetakeCheckboxLabel(), {
|
64
|
+
'color': css.color.labelText,
|
65
|
+
'font-size': css.fontSize.normal,
|
66
|
+
'font-weight': css.fontWeight.regular
|
67
|
+
});
|
68
|
+
});
|
69
|
+
|
70
|
+
it('The user should be able to deselect any button from the \'Audio indicators\' section', () => {
|
71
|
+
audioResponsePage.steps.deselectAudioIndicatorsTimerButton();
|
72
|
+
});
|
73
|
+
|
74
|
+
it('CSS of \'Audio indicators\' section: Timer button - deselected state', () => {
|
75
|
+
utilities.verifyCSS(audioResponsePage.audioIndicatorsTimerButton(), {
|
76
|
+
'color': css.color.secondaryBtn,
|
77
|
+
'background-color': css.color.secondaryBtnBg,
|
78
|
+
'border': `1px solid ${css.color.secondaryBtnBorder}`
|
79
|
+
});
|
80
|
+
});
|
81
|
+
|
82
|
+
it('When the user checks the "Limit number of retake" checkbox, "Show students the retake limits on tooltip" label and checkbox, "Retake limit" label and input field should be displayed. By default, "Show students the retake limits on tooltip" checkbox should be unchecked and the "Retake limit" input field should be empty', () => {
|
83
|
+
audioResponsePage.steps.checkLimitNumberOfRetakeCheckbox();
|
84
|
+
utilities.verifyInnerText(audioResponsePage.showStudentsTheRetakeLimitsOnTooltipCheckboxLabel(), 'Show students the retake limits on tooltip');
|
85
|
+
audioResponsePage.steps.verifyShowStudentsTheRetakeLimitsOnTooltipCheckboxUncheckedState();
|
86
|
+
utilities.verifyInnerText(audioResponsePage.retakeLimitLabel(), 'Retake limit');
|
87
|
+
audioResponsePage.steps.verifyRetakeLimitInputFieldValue('');
|
88
|
+
});
|
89
|
+
});
|
90
|
+
|
91
|
+
describe('Audio indicators : Timer', () => {
|
92
|
+
abortEarlySetup();
|
93
|
+
before(() => {
|
94
|
+
audioResponsePage.steps.navigateToCreateQuestion('audio response');
|
95
|
+
cy.barsPreLoaderWait();
|
96
|
+
});
|
97
|
+
|
98
|
+
it('In standard mode, when the \'Timer\' option is selected, the timer should be displayed in the recorder as well as playback player of the preview tab', () => {
|
99
|
+
audioResponsePage.steps.switchToPreviewTab();
|
100
|
+
utilities.verifyInnerText(audioResponsePage.standardPreviewRecordTime(), '15:00');
|
101
|
+
utilities.verifyElementVisibilityState(audioResponsePage.standardPreviewRecordTime(), 'visible');
|
102
|
+
audioResponsePage.steps.startRecordingStandardPreview();
|
103
|
+
audioResponsePage.steps.waitForRecordingToStartStandardPreview();
|
104
|
+
utilities.verifyElementVisibilityState(audioResponsePage.standardPreviewRecordTime(), 'visible');
|
105
|
+
audioResponsePage.steps.addWaitToRecordAudio(2000);
|
106
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
107
|
+
audioResponsePage.steps.verifyPlaybackTimeStandardPreview('00:00', '00:03');
|
108
|
+
utilities.verifyElementVisibilityState(audioResponsePage.standardPreviewPlaybackTime(), 'visible');
|
109
|
+
});
|
110
|
+
|
111
|
+
it('In standard mode, when the \'Timer\' option is deselected, the timer should not be displayed in the recorder as well as playback player of the preview tab', () => {
|
112
|
+
audioResponsePage.steps.switchToEditTab();
|
113
|
+
audioResponsePage.steps.deselectAudioIndicatorsTimerButton();
|
114
|
+
audioResponsePage.steps.switchToPreviewTab();
|
115
|
+
utilities.verifyElementVisibilityState(audioResponsePage.standardPreviewRecordTime(), 'notExist');
|
116
|
+
audioResponsePage.steps.startRecordingStandardPreview();
|
117
|
+
utilities.verifyElementVisibilityState(audioResponsePage.standardPreviewRecordTime(), 'notExist');
|
118
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
119
|
+
utilities.verifyElementVisibilityState(audioResponsePage.standardPreviewPlaybackTime(), 'notExist');
|
120
|
+
});
|
121
|
+
|
122
|
+
it('In bar mode, when the \'Timer\' option is selected, the timer should be displayed in the recorder as well as playback player of the preview tab', () => {
|
123
|
+
audioResponsePage.steps.switchToEditTab();
|
124
|
+
audioResponsePage.steps.selectAudioRecorderStyle('Bar');
|
125
|
+
audioResponsePage.steps.selectAudioIndicatorsTimerButton();
|
126
|
+
audioResponsePage.steps.switchToPreviewTab();
|
127
|
+
utilities.verifyInnerText(audioResponsePage.barPreviewRecordTime(), '15:00');
|
128
|
+
utilities.verifyElementVisibilityState(audioResponsePage.barPreviewRecordTime(), 'visible');
|
129
|
+
audioResponsePage.steps.startRecordingBarPreview();
|
130
|
+
audioResponsePage.steps.waitForRecordingToStartBarPreview();
|
131
|
+
utilities.verifyElementVisibilityState(audioResponsePage.barPreviewRecordTime(), 'visible');
|
132
|
+
audioResponsePage.steps.addWaitToRecordAudio(2000);
|
133
|
+
audioResponsePage.steps.stopRecordingBarPreview();
|
134
|
+
utilities.verifyElementVisibilityState(audioResponsePage.barPreviewPlaybackTime(), 'visible');
|
135
|
+
});
|
136
|
+
|
137
|
+
it('In bar mode, when the \'Timer\' option is deselected, the timer should not be displayed in the recorder as well as playback player of the preview tab', () => {
|
138
|
+
audioResponsePage.steps.switchToEditTab();
|
139
|
+
audioResponsePage.steps.deselectAudioIndicatorsTimerButton();
|
140
|
+
audioResponsePage.steps.switchToPreviewTab();
|
141
|
+
utilities.verifyElementVisibilityState(audioResponsePage.barPreviewRecordTime(), 'notExist');
|
142
|
+
audioResponsePage.steps.startRecordingBarPreview();
|
143
|
+
utilities.verifyElementVisibilityState(audioResponsePage.barPreviewRecordTime(), 'notExist');
|
144
|
+
audioResponsePage.steps.stopRecordingBarPreview();
|
145
|
+
utilities.verifyElementVisibilityState(audioResponsePage.barPreviewPlaybackTime(), 'notExist');
|
146
|
+
});
|
147
|
+
|
148
|
+
it('In compact mode, when the \'Timer\' option is selected, the timer should be displayed in the recorder as well as playback player of the preview tab', () => {
|
149
|
+
audioResponsePage.steps.switchToEditTab();
|
150
|
+
audioResponsePage.steps.selectAudioRecorderStyle('Compact');
|
151
|
+
audioResponsePage.steps.selectAudioIndicatorsTimerButton();
|
152
|
+
audioResponsePage.steps.switchToPreviewTab();
|
153
|
+
audioResponsePage.steps.startRecordingCompactPreview();
|
154
|
+
utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingTimer(), '15:00');
|
155
|
+
utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewRecordingTimer(), 'visible');
|
156
|
+
audioResponsePage.steps.waitForRecordingToStartCompactPreview();
|
157
|
+
utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewRecordingTimer(), 'visible');
|
158
|
+
audioResponsePage.steps.addWaitToRecordAudio(2000);
|
159
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
160
|
+
audioResponsePage.steps.verifyPlaybackTimeCompactPreview('00:00', '00:03');
|
161
|
+
utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPlaybackTime(), 'visible');
|
162
|
+
});
|
163
|
+
|
164
|
+
it('In compact mode, when the \'Timer\' option is deselected, the timer should not be displayed in the recorder as well as playback player of the preview tab', () => {
|
165
|
+
audioResponsePage.steps.switchToEditTab();
|
166
|
+
audioResponsePage.steps.deselectAudioIndicatorsTimerButton();
|
167
|
+
audioResponsePage.steps.switchToPreviewTab();
|
168
|
+
utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewRecordingTimer(), 'notExist');
|
169
|
+
audioResponsePage.steps.startRecordingCompactPreview();
|
170
|
+
utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewRecordingTimer(), 'notExist');
|
171
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
172
|
+
utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPlaybackTime(), 'notExist');
|
173
|
+
});
|
174
|
+
});
|
175
|
+
|
176
|
+
describe('Audio indicators : Progress indicator', () => {
|
177
|
+
abortEarlySetup();
|
178
|
+
before(() => {
|
179
|
+
audioResponsePage.steps.navigateToCreateQuestion('audio response');
|
180
|
+
cy.barsPreLoaderWait();
|
181
|
+
});
|
182
|
+
|
183
|
+
it('In standard mode, when the \'Progress indicator\' option is selected, the progress indicator should be displayed in the playback player of the preview tab', () => {
|
184
|
+
audioResponsePage.steps.switchToPreviewTab();
|
185
|
+
audioResponsePage.steps.startRecordingStandardPreview();
|
186
|
+
audioResponsePage.steps.waitForRecordingToStartStandardPreview();
|
187
|
+
audioResponsePage.steps.addWaitToRecordAudio(2000);
|
188
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
189
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
190
|
+
utilities.verifyElementVisibilityState(audioResponsePage.progressBar(), 'visible');
|
191
|
+
});
|
192
|
+
|
193
|
+
it('In standard mode, when the \'Progress indicator\' option is deselected, the progress indicator should not be displayed in the playback player of the preview tab', () => {
|
194
|
+
audioResponsePage.steps.switchToEditTab();
|
195
|
+
audioResponsePage.steps.deselectAudioIndicatorsPlaybackIndicatorButton();
|
196
|
+
audioResponsePage.steps.switchToPreviewTab();
|
197
|
+
audioResponsePage.steps.startRecordingStandardPreview();
|
198
|
+
audioResponsePage.steps.waitForRecordingToStartStandardPreview();
|
199
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
200
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
201
|
+
utilities.verifyElementVisibilityState(audioResponsePage.progressBar(), 'notExist');
|
202
|
+
});
|
203
|
+
|
204
|
+
it('In bar mode, when the \'Progress indicator\' option is selected, the progress indicator should be displayed in the playback player of the preview tab', () => {
|
205
|
+
audioResponsePage.steps.switchToEditTab();
|
206
|
+
audioResponsePage.steps.selectAudioRecorderStyle('Bar');
|
207
|
+
audioResponsePage.steps.selectAudioIndicatorsProgressIndicatorButton();
|
208
|
+
audioResponsePage.steps.switchToPreviewTab();
|
209
|
+
audioResponsePage.steps.startRecordingBarPreview();
|
210
|
+
audioResponsePage.steps.waitForRecordingToStartBarPreview();
|
211
|
+
audioResponsePage.steps.stopRecordingBarPreview();
|
212
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
213
|
+
utilities.verifyElementVisibilityState(audioResponsePage.progressBar(), 'visible');
|
214
|
+
});
|
215
|
+
|
216
|
+
it('In bar mode, when the \'Progress indicator\' option is deselected, the progress indicator should not be displayed in the playback player of the preview tab', () => {
|
217
|
+
audioResponsePage.steps.switchToEditTab();
|
218
|
+
audioResponsePage.steps.deselectAudioIndicatorsPlaybackIndicatorButton();
|
219
|
+
audioResponsePage.steps.switchToPreviewTab();
|
220
|
+
audioResponsePage.steps.startRecordingBarPreview();
|
221
|
+
audioResponsePage.steps.waitForRecordingToStartBarPreview();
|
222
|
+
audioResponsePage.steps.stopRecordingBarPreview();
|
223
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
224
|
+
utilities.verifyElementVisibilityState(audioResponsePage.progressBar(), 'notExist');
|
225
|
+
});
|
226
|
+
|
227
|
+
it('In compact mode, when the \'Progress indicator\' option is selected, the progress indicator should be displayed in the playback player of the preview tab', () => {
|
228
|
+
audioResponsePage.steps.switchToEditTab();
|
229
|
+
audioResponsePage.steps.selectAudioRecorderStyle('Compact');
|
230
|
+
audioResponsePage.steps.selectAudioIndicatorsProgressIndicatorButton();
|
231
|
+
audioResponsePage.steps.switchToPreviewTab();
|
232
|
+
audioResponsePage.steps.startRecordingCompactPreview();
|
233
|
+
audioResponsePage.steps.waitForRecordingToStartCompactPreview();
|
234
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
235
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
236
|
+
utilities.verifyElementVisibilityState(audioResponsePage.progressBar(), 'visible');
|
237
|
+
});
|
238
|
+
|
239
|
+
it('In compact mode, when the \'Progress indicator\' option is deselected, the progress indicator should not be displayed in the playback player of the preview tab', () => {
|
240
|
+
audioResponsePage.steps.switchToEditTab();
|
241
|
+
audioResponsePage.steps.deselectAudioIndicatorsPlaybackIndicatorButton();
|
242
|
+
audioResponsePage.steps.switchToPreviewTab();
|
243
|
+
audioResponsePage.steps.startRecordingCompactPreview();
|
244
|
+
audioResponsePage.steps.waitForRecordingToStartCompactPreview();
|
245
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
246
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
247
|
+
utilities.verifyElementVisibilityState(audioResponsePage.progressBar(), 'notExist');
|
248
|
+
});
|
249
|
+
});
|
250
|
+
|
251
|
+
describe('Audio indicators : Audio wave', () => {
|
252
|
+
abortEarlySetup();
|
253
|
+
before(() => {
|
254
|
+
audioResponsePage.steps.navigateToCreateQuestion('audio response');
|
255
|
+
cy.barsPreLoaderWait();
|
256
|
+
});
|
257
|
+
|
258
|
+
it('In standard mode, when the \'Audio wave\' option is selected, the audio wave should be displayed in the playback player of the preview tab', () => {
|
259
|
+
audioResponsePage.steps.switchToPreviewTab();
|
260
|
+
audioResponsePage.steps.startRecordingStandardPreview();
|
261
|
+
audioResponsePage.steps.waitForRecordingToStartStandardPreview();
|
262
|
+
audioResponsePage.steps.addWaitToRecordAudio(2000);
|
263
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
264
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
265
|
+
utilities.verifyElementVisibilityState(audioResponsePage.playbackWaveform(), 'visible');
|
266
|
+
});
|
267
|
+
|
268
|
+
it('In standard mode, when the \'Audio wave\' option is deselected, the audio wave should not be displayed in the playback player of the preview tab', () => {
|
269
|
+
audioResponsePage.steps.switchToEditTab();
|
270
|
+
audioResponsePage.steps.deselectAudioIndicatorsPlaybackIndicatorButton();
|
271
|
+
audioResponsePage.steps.switchToPreviewTab();
|
272
|
+
audioResponsePage.steps.startRecordingStandardPreview();
|
273
|
+
audioResponsePage.steps.waitForRecordingToStartStandardPreview();
|
274
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
275
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
276
|
+
utilities.verifyElementVisibilityState(audioResponsePage.playbackWaveform(), 'notExist');
|
277
|
+
});
|
278
|
+
|
279
|
+
it('In compact mode, when the \'Audio wave\' option is selected, the audio wave should be displayed in the playback player of the preview tab', () => {
|
280
|
+
audioResponsePage.steps.switchToEditTab();
|
281
|
+
audioResponsePage.steps.selectAudioRecorderStyle('Compact');
|
282
|
+
audioResponsePage.steps.selectAudioIndicatorsProgressIndicatorButton();
|
283
|
+
audioResponsePage.steps.switchToPreviewTab();
|
284
|
+
audioResponsePage.steps.startRecordingCompactPreview();
|
285
|
+
audioResponsePage.steps.waitForRecordingToStartCompactPreview();
|
286
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
287
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
288
|
+
utilities.verifyElementVisibilityState(audioResponsePage.playbackWaveform(), 'visible');
|
289
|
+
});
|
290
|
+
|
291
|
+
it('In compact mode, when the \'Audio wave\' option is deselected, the audio wave should not be displayed in the playback player of the preview tab', () => {
|
292
|
+
audioResponsePage.steps.switchToEditTab();
|
293
|
+
audioResponsePage.steps.deselectAudioIndicatorsPlaybackIndicatorButton();
|
294
|
+
audioResponsePage.steps.switchToPreviewTab();
|
295
|
+
audioResponsePage.steps.startRecordingCompactPreview();
|
296
|
+
audioResponsePage.steps.waitForRecordingToStartCompactPreview();
|
297
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
298
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
299
|
+
utilities.verifyElementVisibilityState(audioResponsePage.playbackWaveform(), 'notExist');
|
300
|
+
});
|
301
|
+
});
|
302
|
+
|
303
|
+
describe('Audio indicators : Volume meter', () => {
|
304
|
+
abortEarlySetup();
|
305
|
+
before(() => {
|
306
|
+
audioResponsePage.steps.navigateToCreateQuestion('audio response');
|
307
|
+
cy.barsPreLoaderWait();
|
308
|
+
});
|
309
|
+
|
310
|
+
it('In standard mode, when the \'Volume meter\' option is selected, the volume meter should be displayed in the recorder as well as playback player of the preview tab', () => {
|
311
|
+
audioResponsePage.steps.switchToPreviewTab();
|
312
|
+
audioResponsePage.steps.startRecordingStandardPreview();
|
313
|
+
audioResponsePage.steps.waitForRecordingToStartStandardPreview();
|
314
|
+
utilities.verifyElementVisibilityState(audioResponsePage.previewVolumeMeter(), 'visible');
|
315
|
+
audioResponsePage.steps.addWaitToRecordAudio(2000);
|
316
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
317
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
318
|
+
utilities.verifyElementVisibilityState(audioResponsePage.previewVolumeMeter(), 'visible');
|
319
|
+
});
|
320
|
+
|
321
|
+
it('In standard mode, when the \'Volume meter\' option is deselected, the volume meter should not be displayed in the recorder as well as playback player of the preview tab', () => {
|
322
|
+
audioResponsePage.steps.switchToEditTab();
|
323
|
+
audioResponsePage.steps.deselectAudioIndicatorsVolumeMeterButton();
|
324
|
+
audioResponsePage.steps.switchToPreviewTab();
|
325
|
+
audioResponsePage.steps.startRecordingStandardPreview();
|
326
|
+
utilities.verifyElementVisibilityState(audioResponsePage.previewVolumeMeter(), 'hidden');
|
327
|
+
audioResponsePage.steps.waitForRecordingToStartStandardPreview();
|
328
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
329
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
330
|
+
utilities.verifyElementVisibilityState(audioResponsePage.previewVolumeMeter(), 'hidden');
|
331
|
+
});
|
332
|
+
|
333
|
+
it('In compact mode, when the \'Volume meter\' option is selected, the volume meter should be displayed in the recorder as well as playback player of the preview tab', () => {
|
334
|
+
audioResponsePage.steps.switchToEditTab();
|
335
|
+
audioResponsePage.steps.selectAudioRecorderStyle('Compact');
|
336
|
+
audioResponsePage.steps.selectAudioIndicatorsVolumeMeterButton();
|
337
|
+
audioResponsePage.steps.switchToPreviewTab();
|
338
|
+
audioResponsePage.steps.startRecordingCompactPreview();
|
339
|
+
audioResponsePage.steps.waitForRecordingToStartCompactPreview();
|
340
|
+
utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewVolumeMeter(), 'visible');
|
341
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
342
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
343
|
+
audioResponsePage.steps.startPlaybackCompactPreview();
|
344
|
+
utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewVolumeMeter(), 'visible');
|
345
|
+
});
|
346
|
+
|
347
|
+
it('In compact mode, when the \'Volume meter\' option is deselected, the volume meter should not be displayed in the recorder as well as playback player of the preview tab', () => {
|
348
|
+
audioResponsePage.steps.switchToEditTab();
|
349
|
+
audioResponsePage.steps.deselectAudioIndicatorsVolumeMeterButton();
|
350
|
+
audioResponsePage.steps.switchToPreviewTab();
|
351
|
+
audioResponsePage.steps.startRecordingCompactPreview();
|
352
|
+
audioResponsePage.steps.waitForRecordingToStartCompactPreview();
|
353
|
+
utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewVolumeMeter(), 'notExist');
|
354
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
355
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
356
|
+
audioResponsePage.steps.startPlaybackCompactPreview();
|
357
|
+
utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewVolumeMeter(), 'notExist');
|
358
|
+
});
|
359
|
+
});
|
360
|
+
|
361
|
+
describe('Limit number of retake : Preview tab', () => {
|
362
|
+
abortEarlySetup();
|
363
|
+
before(() => {
|
364
|
+
audioResponsePage.steps.navigateToCreateQuestion('audio response');
|
365
|
+
cy.barsPreLoaderWait();
|
366
|
+
});
|
367
|
+
|
368
|
+
it('For "Standard" mode, When the user checks the \'Limit number of retake\' checkbox, sets retake limit and switches to the preview tab, then only the specified number of retakes should be allowed and after specified number of retakes are performed, then the retake recording button should get disabled', () => {
|
369
|
+
audioResponsePage.steps.checkLimitNumberOfRetakeCheckbox();
|
370
|
+
audioResponsePage.steps.setRetakeLimit(1);
|
371
|
+
audioResponsePage.steps.switchToPreviewTab();
|
372
|
+
audioResponsePage.steps.startRecordingStandardPreview();
|
373
|
+
audioResponsePage.steps.waitForRecordingToStartStandardPreview();
|
374
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
375
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
376
|
+
audioResponsePage.steps.retakeRecordingStandardPreview();
|
377
|
+
audioResponsePage.steps.confirmRetake();
|
378
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
379
|
+
utilities.verifyInnerText(audioResponsePage.recordingStatusText(), 'Recording...');
|
380
|
+
audioResponsePage.steps.waitForRecordingToStartStandardPreview();
|
381
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
382
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
383
|
+
utilities.verifyElementDisabled(audioResponsePage.standardPreviewRetakeButton());
|
384
|
+
});
|
385
|
+
|
386
|
+
it('For "Standard" mode, When the user checks the "Show students the retake limits on tooltip" checkbox and has set a retake limit and switches to the preview tab, then on hovering over the retake recording button, Retake recording (# retakes remaining) should be displayed on a tooltip', () => {
|
387
|
+
audioResponsePage.steps.switchToEditTab();
|
388
|
+
audioResponsePage.steps.checkShowStudentsTheRetakeLimitsOnTooltipCheckbox();
|
389
|
+
audioResponsePage.steps.switchToPreviewTab();
|
390
|
+
audioResponsePage.steps.startRecordingStandardPreview();
|
391
|
+
audioResponsePage.steps.waitForRecordingToStartStandardPreview();
|
392
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
393
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
394
|
+
audioResponsePage.standardPreviewRetakeButton()
|
395
|
+
.verifyTooltip('Retake recording(1 retakes remaining)');
|
396
|
+
});
|
397
|
+
|
398
|
+
it('For "Standard" mode, When the user removes the retake limit, then the user should be able to retake the recording for n number of times', () => {
|
399
|
+
audioResponsePage.steps.switchToEditTab();
|
400
|
+
audioResponsePage.steps.clearRetakeLimitInputField();
|
401
|
+
audioResponsePage.steps.switchToPreviewTab();
|
402
|
+
audioResponsePage.steps.startRecordingStandardPreview();
|
403
|
+
audioResponsePage.steps.waitForRecordingToStartStandardPreview();
|
404
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
405
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
406
|
+
audioResponsePage.steps.retakeRecordingStandardPreview();
|
407
|
+
audioResponsePage.steps.confirmRetake();
|
408
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
409
|
+
utilities.verifyInnerText(audioResponsePage.recordingStatusText(), 'Recording...');
|
410
|
+
audioResponsePage.steps.waitForRecordingToStartStandardPreview();
|
411
|
+
audioResponsePage.steps.stopRecordingStandardPreview();
|
412
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
413
|
+
utilities.verifyElementNotDisabled(audioResponsePage.standardPreviewRetakeButton());
|
414
|
+
});
|
415
|
+
|
416
|
+
it('For "Standard" mode, When there is no retake limit set, then on hovering over the retake recording button, then retake limits should not be displayed on retake recording button tooltip', () => {
|
417
|
+
audioResponsePage.standardPreviewRetakeButton()
|
418
|
+
.verifyTooltip('Retake recording');
|
419
|
+
});
|
420
|
+
|
421
|
+
it('For "Bar" mode, When the user checks the \'Limit number of retake\' checkbox, sets retake limit and switches to the preview tab, then only the specified number of retakes should be allowed and after specified number of retakes are performed, then the retake recording button should get disabled', () => {
|
422
|
+
cy.log('Pre-step: Switching to bar recorder style and unchecking the "Show students the retake limits on tooltip" checkbox')
|
423
|
+
audioResponsePage.steps.switchToEditTab();
|
424
|
+
audioResponsePage.steps.selectAudioRecorderStyle('Bar');
|
425
|
+
audioResponsePage.steps.uncheckShowStudentsTheRetakeLimitsOnTooltipCheckbox();
|
426
|
+
audioResponsePage.steps.setRetakeLimit(1);
|
427
|
+
audioResponsePage.steps.switchToPreviewTab();
|
428
|
+
audioResponsePage.steps.startRecordingBarPreview();
|
429
|
+
audioResponsePage.steps.waitForRecordingToStartBarPreview();
|
430
|
+
audioResponsePage.steps.stopRecordingBarPreview();
|
431
|
+
audioResponsePage.steps.retakeRecordingBarPreview();
|
432
|
+
audioResponsePage.steps.confirmRetake();
|
433
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
434
|
+
utilities.verifyInnerText(audioResponsePage.recordingStatusText(), 'Recording...');
|
435
|
+
audioResponsePage.steps.waitForRecordingToStartBarPreview();
|
436
|
+
audioResponsePage.steps.stopRecordingBarPreview();
|
437
|
+
utilities.verifyElementDisabled(audioResponsePage.barPreviewRetakeButton());
|
438
|
+
});
|
439
|
+
|
440
|
+
it('For "Bar" mode, When the user checks the "Show students the retake limits on tooltip" checkbox and has set a retake limit and switches to the preview tab, then on hovering over the retake recording button, Retake recording (# retakes remaining) should be displayed on a tooltip', () => {
|
441
|
+
audioResponsePage.steps.switchToEditTab();
|
442
|
+
audioResponsePage.steps.checkShowStudentsTheRetakeLimitsOnTooltipCheckbox();
|
443
|
+
audioResponsePage.steps.switchToPreviewTab();
|
444
|
+
audioResponsePage.steps.startRecordingBarPreview();
|
445
|
+
audioResponsePage.steps.waitForRecordingToStartBarPreview();
|
446
|
+
audioResponsePage.steps.stopRecordingBarPreview();
|
447
|
+
audioResponsePage.barPreviewRetakeButton()
|
448
|
+
.verifyTooltip('Retake recording(1 retakes remaining)');
|
449
|
+
});
|
450
|
+
|
451
|
+
it('For "Bar" mode, When the user removes the retake limit, then the user should be able to retake the recording for n number of times', () => {
|
452
|
+
audioResponsePage.steps.switchToEditTab();
|
453
|
+
audioResponsePage.steps.clearRetakeLimitInputField();
|
454
|
+
audioResponsePage.steps.switchToPreviewTab();
|
455
|
+
audioResponsePage.steps.startRecordingBarPreview();
|
456
|
+
audioResponsePage.steps.waitForRecordingToStartBarPreview();
|
457
|
+
audioResponsePage.steps.stopRecordingBarPreview();
|
458
|
+
audioResponsePage.steps.retakeRecordingBarPreview();
|
459
|
+
audioResponsePage.steps.confirmRetake();
|
460
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
461
|
+
utilities.verifyInnerText(audioResponsePage.recordingStatusText(), 'Recording...');
|
462
|
+
audioResponsePage.steps.waitForRecordingToStartBarPreview();
|
463
|
+
audioResponsePage.steps.stopRecordingBarPreview();
|
464
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
465
|
+
utilities.verifyElementNotDisabled(audioResponsePage.barPreviewRetakeButton());
|
466
|
+
});
|
467
|
+
|
468
|
+
it('For "Bar" mode, When there is no retake limit set, then on hovering over the retake recording button, then retake limits should not be displayed on retake recording button tooltip', () => {
|
469
|
+
audioResponsePage.barPreviewRetakeButton()
|
470
|
+
.verifyTooltip('Retake recording');
|
471
|
+
});
|
472
|
+
|
473
|
+
it('For "Compact" mode, When the user checks the \'Limit number of retake\' checkbox, sets retake limit and switches to the preview tab, then only the specified number of retakes should be allowed and after specified number of retakes are performed, then the retake recording button should get disabled', () => {
|
474
|
+
cy.log('Pre-step: Switching to bar recorder style and unchecking the "Show students the retake limits on tooltip" checkbox')
|
475
|
+
audioResponsePage.steps.switchToEditTab();
|
476
|
+
audioResponsePage.steps.selectAudioRecorderStyle('Compact');
|
477
|
+
audioResponsePage.steps.uncheckShowStudentsTheRetakeLimitsOnTooltipCheckbox();
|
478
|
+
audioResponsePage.steps.setRetakeLimit(1);
|
479
|
+
audioResponsePage.steps.switchToPreviewTab();
|
480
|
+
audioResponsePage.steps.startRecordingCompactPreview();
|
481
|
+
audioResponsePage.steps.waitForRecordingToStartCompactPreview();
|
482
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
483
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
484
|
+
audioResponsePage.steps.retakeRecordingCompactPreview();
|
485
|
+
audioResponsePage.steps.confirmRetake();
|
486
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
487
|
+
utilities.verifyInnerText(audioResponsePage.recordingStatusText(), 'Recording...');
|
488
|
+
audioResponsePage.steps.waitForRecordingToStartCompactPreview();
|
489
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
490
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
491
|
+
utilities.verifyElementDisabled(audioResponsePage.compactPreviewRetakeButton());
|
492
|
+
});
|
493
|
+
|
494
|
+
it('For "Compact" mode, When the user checks the "Show students the retake limits on tooltip" checkbox and has set a retake limit and switches to the preview tab, then on hovering over the retake recording button, Retake recording (# retakes remaining) should be displayed on a tooltip', () => {
|
495
|
+
audioResponsePage.steps.switchToEditTab();
|
496
|
+
audioResponsePage.steps.checkShowStudentsTheRetakeLimitsOnTooltipCheckbox();
|
497
|
+
audioResponsePage.steps.switchToPreviewTab();
|
498
|
+
audioResponsePage.steps.startRecordingCompactPreview();
|
499
|
+
audioResponsePage.steps.waitForRecordingToStartCompactPreview();
|
500
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
501
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
502
|
+
audioResponsePage.compactPreviewRetakeButton()
|
503
|
+
.verifyTooltip('Retake recording(1 retakes remaining)');
|
504
|
+
});
|
505
|
+
|
506
|
+
it('For "Compact" mode, When the user removes the retake limit, then the user should be able to retake the recording for n number of times', () => {
|
507
|
+
audioResponsePage.steps.switchToEditTab();
|
508
|
+
audioResponsePage.steps.clearRetakeLimitInputField();
|
509
|
+
audioResponsePage.steps.switchToPreviewTab();
|
510
|
+
audioResponsePage.steps.startRecordingCompactPreview();
|
511
|
+
audioResponsePage.steps.waitForRecordingToStartCompactPreview();
|
512
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
513
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
514
|
+
audioResponsePage.steps.retakeRecordingCompactPreview();
|
515
|
+
audioResponsePage.steps.confirmRetake();
|
516
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
517
|
+
utilities.verifyInnerText(audioResponsePage.recordingStatusText(), 'Recording...');
|
518
|
+
audioResponsePage.steps.waitForRecordingToStartCompactPreview();
|
519
|
+
audioResponsePage.steps.stopRecordingCompactPreview();
|
520
|
+
audioResponsePage.steps.verifyResponseIsRecordedHelpText();
|
521
|
+
utilities.verifyElementNotDisabled(audioResponsePage.barPreviewRetakeButton());
|
522
|
+
});
|
523
|
+
|
524
|
+
it('For "Compact" mode, When there is no retake limit set, then on hovering over the retake recording button, then retake limits should not be displayed on retake recording button tooltip', () => {
|
525
|
+
audioResponsePage.barPreviewRetakeButton()
|
526
|
+
.verifyTooltip('Retake recording');
|
527
|
+
});
|
528
|
+
});
|
529
|
+
});
|