itemengine-cypress-automation 1.0.197 → 1.0.198
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cypress/e2e/ILC/ImageHighlight/editTabScoring.js +355 -0
- package/cypress/e2e/ILC/ImageHighlight/headerSection.js +83 -0
- package/cypress/e2e/ILC/ImageHighlight/minimumScoringPenaltyPointsAndRoundingDropdown.js +205 -0
- package/cypress/e2e/ILC/ImageHighlight/specifyCorrectAnswerSection.js +92 -0
- package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +404 -0
- package/cypress/e2e/ILC/ImageHighlight/supportedFileTypes.js +42 -0
- package/cypress/e2e/ILC/ImageHighlight/toolSettings.js +73 -0
- package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/editTabScoring.js +253 -0
- package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/partialDifferentWeightsBasic.js +114 -0
- package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +288 -0
- package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/partialEqualWeightsBasic.js +164 -0
- package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/previewContentsForAllViews.smoke.js +168 -0
- package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/setPointsPopup.js +83 -0
- package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +114 -0
- package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/studentViewSettings.js +179 -0
- package/cypress/e2e/ILC/ListOrderingNew/horizontalOrientationAllOrNothingForAllViews.smoke.js +214 -0
- package/cypress/e2e/ILC/ListOrderingNew/studentViewSettings.js +5 -21
- package/cypress/e2e/ILC/TextSelection/studentViewSettings.js +3 -37
- package/cypress/e2e/ILC/VideoResponseNew/previewContentsForAllViews.smoke.js +1 -1
- package/cypress/fixtures/uploads/sampleVirus.zip +0 -0
- package/cypress/pages/components/draggableOptionContainer.js +1 -1
- package/cypress/pages/components/enableOuterBorderComponent.js +16 -2
- package/cypress/pages/components/index.js +3 -1
- package/cypress/pages/components/scoringSectionBase.js +1 -1
- package/cypress/pages/components/setPointsPopupBase.js +7 -10
- package/cypress/pages/components/showAvailableOptionsToStudents.js +76 -0
- package/cypress/pages/components/showStudentMaximumNumberOfPossibleSelections.js +56 -0
- package/cypress/pages/imageHighlightPage.js +434 -4
- package/cypress/pages/listOrderingPage.js +287 -43
- package/cypress/pages/textSelectionPage.js +6 -71
- package/package.json +1 -1
@@ -1,5 +1,5 @@
|
|
1
1
|
import utilities from "../support/helpers/utilities";
|
2
|
-
import { autoScoredScoringPreviewTab, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, autoScoredStudentViewSettings, backgroundImageUploadComponent, commonComponents, createQuestionBasePage, enableOuterBorderComponent, imageCanvasComponent, questionInstructionsComponent, scoringSectionBaseEditTab, singleMultipleSelectionModeComponent } from "./components"
|
2
|
+
import { additionalSettingsAccessibilitySectionComponent, additionalSettingsPanel, autoScoredScoringPreviewTab, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, autoScoredStudentViewSettings, backgroundImageUploadComponent, commonComponents, createQuestionBasePage, enableOuterBorderComponent, gradingViewEnumerationComponent, imageActionsComponent, imageCanvasComponent, questionInstructionsComponent, scoringSectionBaseEditTab, showAvailableOptionsToStudents, showStudentMaximumNumberOfPossibleSelections, singleMultipleSelectionModeComponent } from "./components"
|
3
3
|
const css = Cypress.env('css');
|
4
4
|
let imageWidth = 768;
|
5
5
|
let imageHeight = 432;
|
@@ -10,7 +10,13 @@ const selectors = {
|
|
10
10
|
...autoScoredSpecifyCorrectAnswerSection,
|
11
11
|
...commonComponents,
|
12
12
|
...enableOuterBorderComponent,
|
13
|
+
...showAvailableOptionsToStudents,
|
14
|
+
...showStudentMaximumNumberOfPossibleSelections,
|
13
15
|
...autoScoredScoringPreviewTab,
|
16
|
+
...imageCanvasComponent,
|
17
|
+
...imageActionsComponent,
|
18
|
+
...additionalSettingsPanel,
|
19
|
+
...gradingViewEnumerationComponent,
|
14
20
|
|
15
21
|
//Specify possible options
|
16
22
|
specifyPossibleOptionsImageWrapper: () => cy.get('.drawing-tool__wrapper .drawing-tool__canvas'),
|
@@ -22,6 +28,11 @@ const selectors = {
|
|
22
28
|
redoTool: () => cy.get('.drawing-tool__button-redo'),
|
23
29
|
clearAllTool: () => cy.get('.drawing-tool__button-clearAll'),
|
24
30
|
optionCount: () => cy.get('[class*="HighlightImagestyles__HighlightCountWrapper"]'),
|
31
|
+
specifyPossibleOptionsLabel: () => cy.get('[class*="HighlightImagestyles__HighlightImageLabel"]'),
|
32
|
+
clearAllPopupHeading: () => cy.get('.drawing-tool__delete-popup__heading'),
|
33
|
+
clearAllPopupDescription: () => cy.get('.drawing-tool__delete-popup__body'),
|
34
|
+
cancelButton: () => cy.get('.cancel-button'),
|
35
|
+
clearAllButton: () => cy.get('.clear-button'),
|
25
36
|
//Specify correct answer section
|
26
37
|
specifyCorrectAnswerSectionImage: () => cy.get('.highlight-svg-responseive image'),
|
27
38
|
specifyCorrectAnswerSectionHighlight: () => cy.get('.ngie-accordion [class*="HighlightImageControlstyles__ShapeWrapper"] a'),
|
@@ -41,7 +52,16 @@ const selectors = {
|
|
41
52
|
correctAnswerNumeration: () => cy.get('[class*="CellIndexWrapper"]'),
|
42
53
|
correctIncorrectAnswerTextWrapper: () => cy.get('[class*="_CorrectIncorrectWrapper"]'),
|
43
54
|
incorrectIcon: () => cy.get('[data-icon="Incorrect"]'),
|
44
|
-
correctIcon: () => cy.get('[data-icon="CorrectAnswer"]')
|
55
|
+
correctIcon: () => cy.get('[data-icon="CorrectAnswer"]'),
|
56
|
+
//Additional settings
|
57
|
+
descriptorsAccordion: () => cy.get('.descriptor-wrapper .MuiAccordionSummary-root'),
|
58
|
+
descriptorsHeading: () => cy.get('[class*="Descriptorsstyles__AddToolsHeading"]'),
|
59
|
+
descriptorsInfoIcon: () => cy.get('[class*="Descriptorsstyles__InfoIconWrapper"]'),
|
60
|
+
descriptorsInputField: () => cy.get('.option-without-ckeditor input'),
|
61
|
+
descriptorsInputFieldNumeration: () => cy.get('.descriptor-wrapper .MuiInputAdornment-positionStart'),
|
62
|
+
ariaLabelInputField: () => cy.get('input[placeholder*="Enter ARIA label"]'),
|
63
|
+
inputFieldNumeration: () => cy.get('.MuiInputAdornment-root'),
|
64
|
+
ariaLabelSectionLabel: () => cy.get('[class*="styles__LabelWrapper"]').contains('ARIA'),
|
45
65
|
}
|
46
66
|
|
47
67
|
const steps = {
|
@@ -56,6 +76,10 @@ const steps = {
|
|
56
76
|
...autoScoredSpecifyCorrectAnswerSection.steps,
|
57
77
|
...autoScoredScoringSectionMultiResponseType.steps,
|
58
78
|
...enableOuterBorderComponent.steps,
|
79
|
+
...showAvailableOptionsToStudents.steps,
|
80
|
+
...showStudentMaximumNumberOfPossibleSelections.steps,
|
81
|
+
...additionalSettingsPanel.steps,
|
82
|
+
...gradingViewEnumerationComponent.steps,
|
59
83
|
|
60
84
|
//Specify possible options
|
61
85
|
clickOnFreeformTool: () => {
|
@@ -79,7 +103,16 @@ const steps = {
|
|
79
103
|
clickOnClearAllTool: () => {
|
80
104
|
imageHighlightPage.clearAllTool()
|
81
105
|
.click()
|
82
|
-
|
106
|
+
},
|
107
|
+
|
108
|
+
clickOnClearAllButton: () => {
|
109
|
+
imageHighlightPage.clearAllButton()
|
110
|
+
.click();
|
111
|
+
},
|
112
|
+
|
113
|
+
clickOnCancelAllButton: () => {
|
114
|
+
imageHighlightPage.cancelButton()
|
115
|
+
.click();
|
83
116
|
},
|
84
117
|
|
85
118
|
verifyImageUploadedInSpecifyPossibleOptionsSection: () => {
|
@@ -157,7 +190,233 @@ const steps = {
|
|
157
190
|
.should('not.have.class', 'drawing-tool__button--active');
|
158
191
|
},
|
159
192
|
|
193
|
+
verifyCanvasImageTopLeftAligned: () => {
|
194
|
+
imageHighlightPage.specifyPossibleOptionsImageCanvas()
|
195
|
+
.should('have.css', 'top', '0px')
|
196
|
+
.and('have.css', 'left', '0px');
|
197
|
+
},
|
198
|
+
|
199
|
+
verifyCanvasImageCenterAligned: () => {
|
200
|
+
imageHighlightPage.specifyPossibleOptionsImageCanvas()
|
201
|
+
.should('not.have.css', 'top', '0px')
|
202
|
+
.and('not.have.css', 'left', '0px');
|
203
|
+
},
|
204
|
+
|
205
|
+
verifyCanvasImageTopRightAligned: () => {
|
206
|
+
imageHighlightPage.specifyPossibleOptionsImageCanvas()
|
207
|
+
.should('have.css', 'top', '0px')
|
208
|
+
.and('not.have.css', 'left', '0px');
|
209
|
+
},
|
210
|
+
|
211
|
+
/**
|
212
|
+
* @param {number} value holds opacity value for image
|
213
|
+
* @description function verifies opacity value for image
|
214
|
+
*/
|
215
|
+
verifyOpacityValueForCanvasImage: (value) => {
|
216
|
+
imageHighlightPage.specifyPossibleOptionsImageCanvas()
|
217
|
+
.should('have.attr', 'opacity', value / 100);
|
218
|
+
},
|
219
|
+
|
220
|
+
verifyImageFitsToCanvas: () => {
|
221
|
+
imageHighlightPage.canvasWidthInputField()
|
222
|
+
.invoke('attr', 'value')
|
223
|
+
.then((value) => {
|
224
|
+
imageHighlightPage.specifyPossibleOptionsImageCanvas()
|
225
|
+
.should('have.css', 'width', `${value}px`);
|
226
|
+
});
|
227
|
+
},
|
228
|
+
|
229
|
+
verifyImageDoesNotFitToCanvas: () => {
|
230
|
+
imageHighlightPage.canvasWidthInputField()
|
231
|
+
.invoke('attr', 'value')
|
232
|
+
.then(($element) => {
|
233
|
+
imageHighlightPage.specifyPossibleOptionsImageCanvas()
|
234
|
+
.should('not.have.css', 'width', `${$element}px`);
|
235
|
+
});
|
236
|
+
},
|
237
|
+
|
238
|
+
/**
|
239
|
+
* @param {*} width width of canvas
|
240
|
+
* @description this function verifies width of canvas
|
241
|
+
*/
|
242
|
+
verifyCanvasWidth: (width) => {
|
243
|
+
const tolerance = 2
|
244
|
+
imageHighlightPage.specifyPossibleOptionsImageCanvas()
|
245
|
+
.should('have.attr', 'width', width - tolerance);
|
246
|
+
},
|
247
|
+
|
248
|
+
/**
|
249
|
+
* @param {*} height height of canvas
|
250
|
+
* @description this function verifies height of canvas
|
251
|
+
*/
|
252
|
+
verifyCanvasHeight: (height) => {
|
253
|
+
const tolerance = 2
|
254
|
+
imageHighlightPage.specifyPossibleOptionsImageCanvas()
|
255
|
+
.should('have.css', 'height')
|
256
|
+
.then(($cssHeight) => {
|
257
|
+
const actualHeight = parseFloat($cssHeight);
|
258
|
+
expect(actualHeight).to.be.closeTo(height, tolerance);
|
259
|
+
});
|
260
|
+
},
|
261
|
+
|
262
|
+
/**
|
263
|
+
* @param {string} text alternative text for canvas image
|
264
|
+
* @description this function verifies text for canvas image
|
265
|
+
*/
|
266
|
+
verifyImageAltTextSpecifyPossibleOptionsImageCanvas: (text) => {
|
267
|
+
imageHighlightPage.specifyPossibleOptionsImageCanvas()
|
268
|
+
.parents('.drawing-tool__wrapper')
|
269
|
+
.find('.lower-canvas')
|
270
|
+
.should('have.attr', 'aria-label', text);
|
271
|
+
},
|
272
|
+
|
273
|
+
verifyNoImageAltTextSpecifyPossibleOptionsImageCanvas: () => {
|
274
|
+
imageHighlightPage.specifyPossibleOptionsImageCanvas()
|
275
|
+
.parents('.drawing-tool__wrapper')
|
276
|
+
.find('.lower-canvas')
|
277
|
+
.should('have.attr', 'aria-label', 'Image');
|
278
|
+
},
|
279
|
+
|
160
280
|
//Specify correct answer section
|
281
|
+
/**
|
282
|
+
* @param {string} text alternative text for canvas image
|
283
|
+
* @description this function verifies text for canvas image
|
284
|
+
*/
|
285
|
+
verifyImageAltTextSpecifyCorrectAnswerImageCanvas: (text) => {
|
286
|
+
imageHighlightPage.specifyCorrectAnswerSectionImage()
|
287
|
+
.should('have.attr', 'alt', text);
|
288
|
+
},
|
289
|
+
|
290
|
+
verifyNoImageAltTextSpecifyCorrectAnswerImageCanvas: () => {
|
291
|
+
imageHighlightPage.specifyCorrectAnswerSectionImage()
|
292
|
+
.should('have.attr', 'alt', '');
|
293
|
+
},
|
294
|
+
|
295
|
+
verifyCanvasImageTopLeftAlignedSpecifyCorrectAnswer: () => {
|
296
|
+
imageHighlightPage.specifyCorrectAnswerSectionImage()
|
297
|
+
.should('have.css', 'top', '0px')
|
298
|
+
.and('have.css', 'left', '0px');
|
299
|
+
},
|
300
|
+
|
301
|
+
verifyCanvasImageCenterAlignedSpecifyCorrectAnswer: () => {
|
302
|
+
imageHighlightPage.specifyCorrectAnswerSectionImage()
|
303
|
+
.should('not.have.css', 'top', '0px')
|
304
|
+
.and('not.have.css', 'left', '0px');
|
305
|
+
},
|
306
|
+
|
307
|
+
verifyCanvasImageTopRightAlignedSpecifyCorrectAnswer: () => {
|
308
|
+
imageHighlightPage.specifyCorrectAnswerSectionImage()
|
309
|
+
.should('have.css', 'top', '0px')
|
310
|
+
.and('not.have.css', 'left', '0px');
|
311
|
+
},
|
312
|
+
|
313
|
+
/**
|
314
|
+
* @param {number} value holds opacity value for image
|
315
|
+
* @description function verifies opacity value for image
|
316
|
+
*/
|
317
|
+
verifyOpacityValueForCanvasImageSpecifyCorrectAnswer: (value) => {
|
318
|
+
imageHighlightPage.specifyCorrectAnswerSectionImage()
|
319
|
+
.should('have.attr', 'opacity', value / 100);
|
320
|
+
},
|
321
|
+
|
322
|
+
verifyImageFitsToCanvasSpecifyCorrectAnswer: () => {
|
323
|
+
imageHighlightPage.canvasWidthInputField()
|
324
|
+
.invoke('attr', 'value')
|
325
|
+
.then((value) => {
|
326
|
+
imageHighlightPage.specifyCorrectAnswerSectionImage()
|
327
|
+
.should('have.css', 'width', `${value}px`);
|
328
|
+
});
|
329
|
+
},
|
330
|
+
|
331
|
+
verifyImageDoesNotFitToCanvasSpecifyCorrectAnswer: () => {
|
332
|
+
imageHighlightPage.canvasWidthInputField()
|
333
|
+
.invoke('attr', 'value')
|
334
|
+
.then(($element) => {
|
335
|
+
imageHighlightPage.specifyCorrectAnswerSectionImage()
|
336
|
+
.should('not.have.css', 'width', `${$element}px`);
|
337
|
+
});
|
338
|
+
},
|
339
|
+
|
340
|
+
/**
|
341
|
+
* @param {*} width width of canvas
|
342
|
+
* @description this function verifies width of canvas
|
343
|
+
*/
|
344
|
+
verifyCanvasWidthSpecifyCorrectAnswer: (width) => {
|
345
|
+
imageHighlightPage.specifyCorrectAnswerSectionImage()
|
346
|
+
.should('have.attr', 'width', width);
|
347
|
+
},
|
348
|
+
|
349
|
+
/**
|
350
|
+
* @param {*} height height of canvas
|
351
|
+
* @description this function verifies height of canvas
|
352
|
+
*/
|
353
|
+
verifyCanvasHeightSpecifyCorrectAnswer: (height) => {
|
354
|
+
imageHighlightPage.specifyCorrectAnswerSectionImage()
|
355
|
+
.should('have.css', 'height', `${height}px`);
|
356
|
+
},
|
357
|
+
|
358
|
+
/**
|
359
|
+
* @param {string} text alternative text for canvas image
|
360
|
+
* @description this function verifies text for canvas image
|
361
|
+
*/
|
362
|
+
verifyImageAlternativeTextPresentInSpecifyCorrectAnswer: (text) => {
|
363
|
+
imageHighlightPage.specifyCorrectAnswerSectionImage()
|
364
|
+
.should('have.attr', 'alt', text);
|
365
|
+
},
|
366
|
+
|
367
|
+
verifyNoImageAlternativeTextPresentInSpecifyCorrectAnswer: () => {
|
368
|
+
imageHighlightPage.specifyCorrectAnswerSectionImage()
|
369
|
+
.should('not.have.attr', 'alt');
|
370
|
+
},
|
371
|
+
|
372
|
+
/**
|
373
|
+
* This function verifies highlight region aria label
|
374
|
+
* @param {number} index for the highlight region
|
375
|
+
* @param {string} ariaLabel for the highlight region
|
376
|
+
*/
|
377
|
+
verifyHighlightRegionAriaLabelSpecifyCorrectAnswer: (index, ariaLabel) => {
|
378
|
+
imageHighlightPage.specifyCorrectAnswerSectionHighlight()
|
379
|
+
.eq(index)
|
380
|
+
.should('have.attr', 'aria-label', ariaLabel);
|
381
|
+
},
|
382
|
+
|
383
|
+
/**
|
384
|
+
* Verifies the ARIA label text input fields.
|
385
|
+
* @param {number} inputFieldIndex - The index of the input field to verify.
|
386
|
+
*/
|
387
|
+
verifyAriaLabelTextInputFields: (inputFieldIndex) => {
|
388
|
+
imageHighlightPage.ariaLabelInputField()
|
389
|
+
.eq(inputFieldIndex)
|
390
|
+
.parents('.input-editable')
|
391
|
+
.within(() => {
|
392
|
+
utilities.verifyInnerText(imageHighlightPage.inputFieldNumeration(), `${inputFieldIndex + 1}`)
|
393
|
+
utilities.verifyInputFieldValue(imageHighlightPage.ariaLabelInputField(), '');
|
394
|
+
});
|
395
|
+
},
|
396
|
+
|
397
|
+
/**
|
398
|
+
* Enters text in the ARIA label input field.
|
399
|
+
* @param {number} inputFieldIndex - The index of the input field to enter text into.
|
400
|
+
* @param {string} text - The text to enter into the input field.
|
401
|
+
*/
|
402
|
+
enterTextInAriaLabelInputField: (inputFieldIndex, text) => {
|
403
|
+
imageHighlightPage.ariaLabelInputField()
|
404
|
+
.eq(inputFieldIndex)
|
405
|
+
.type(text)
|
406
|
+
.should('have.value', text)
|
407
|
+
.blur();
|
408
|
+
},
|
409
|
+
|
410
|
+
/**
|
411
|
+
* Clears text in the ARIA label input field.
|
412
|
+
* @param {number} inputFieldIndex - The index of the input field to clear.
|
413
|
+
*/
|
414
|
+
clearTextInAriaLabelInputField: (inputFieldIndex) => {
|
415
|
+
imageHighlightPage.ariaLabelInputField()
|
416
|
+
.eq(inputFieldIndex)
|
417
|
+
.clear();
|
418
|
+
},
|
419
|
+
|
161
420
|
verifyImageUploadedSpecifyCorrectAnswer: () => {
|
162
421
|
utilities.verifyElementVisibilityState(imageHighlightPage.specifyCorrectAnswerSectionImage(), 'visible')
|
163
422
|
},
|
@@ -331,6 +590,103 @@ const steps = {
|
|
331
590
|
utilities.verifyElementVisibilityState(imageHighlightPage.imagePreviewTab(), 'visible')
|
332
591
|
},
|
333
592
|
|
593
|
+
verifyImageNotUploadedPreviewTab: () => {
|
594
|
+
imageHighlightPage.imagePreviewTab()
|
595
|
+
.should('have.attr', 'href', '');
|
596
|
+
},
|
597
|
+
|
598
|
+
verifyCanvasImageTopLeftAlignedInPreviewTab: () => {
|
599
|
+
imageHighlightPage.imagePreviewTab()
|
600
|
+
.should('have.css', 'top', '0px')
|
601
|
+
.and('have.css', 'left', '0px');
|
602
|
+
},
|
603
|
+
|
604
|
+
verifyCanvasImageCenterAlignedInPreviewTab: () => {
|
605
|
+
imageHighlightPage.imagePreviewTab()
|
606
|
+
.should('not.have.css', 'top', '0px')
|
607
|
+
.and('not.have.css', 'left', '0px');
|
608
|
+
},
|
609
|
+
|
610
|
+
verifyCanvasImageTopRightAlignedInPreviewTab: () => {
|
611
|
+
imageHighlightPage.imagePreviewTab()
|
612
|
+
.should('have.css', 'top', '0px')
|
613
|
+
.and('not.have.css', 'left', '0px');
|
614
|
+
},
|
615
|
+
|
616
|
+
/**
|
617
|
+
* @param {number} value holds opacity value for image
|
618
|
+
* @description function verifies opacity value for image
|
619
|
+
*/
|
620
|
+
verifyOpacityValueForCanvasImageInPreviewTab: (value) => {
|
621
|
+
imageHighlightPage.imagePreviewTab()
|
622
|
+
.should('have.attr', 'opacity', value / 100);
|
623
|
+
},
|
624
|
+
|
625
|
+
/**
|
626
|
+
* @param {*} width width of canvas
|
627
|
+
* @description this function verifies width of canvas
|
628
|
+
*/
|
629
|
+
verifyCanvasWidthInPreviewTab: (width) => {
|
630
|
+
imageHighlightPage.imagePreviewTab()
|
631
|
+
.should('have.attr', 'width', width);
|
632
|
+
},
|
633
|
+
|
634
|
+
/**
|
635
|
+
* @param {*} height height of canvas
|
636
|
+
* @description this function verifies height of canvas
|
637
|
+
*/
|
638
|
+
verifyCanvasHeightInPreviewTab: (height) => {
|
639
|
+
imageHighlightPage.imagePreviewTab()
|
640
|
+
.should('have.css', 'height', `${height}px`);
|
641
|
+
},
|
642
|
+
|
643
|
+
/**
|
644
|
+
* @param {string} text alternative text for canvas image
|
645
|
+
* @description this function verifies text for canvas image
|
646
|
+
*/
|
647
|
+
verifyImageAlternativeTextInPreviewTab: (text) => {
|
648
|
+
imageHighlightPage.imagePreviewTab()
|
649
|
+
.should('have.attr', 'alt', text);
|
650
|
+
},
|
651
|
+
|
652
|
+
verifyNoImageAlternativeTextPresentInPreviewTab: () => {
|
653
|
+
imageHighlightPage.imagePreviewTab()
|
654
|
+
.should('have.attr', 'alt', '');
|
655
|
+
},
|
656
|
+
|
657
|
+
verifyImageFitsToCanvasInPreviewTab: () => {
|
658
|
+
createQuestionBasePage.steps.switchToEditTab();
|
659
|
+
imageCanvasComponent.canvasWidthInputField()
|
660
|
+
.invoke('attr', 'value')
|
661
|
+
.then((value) => {
|
662
|
+
createQuestionBasePage.steps.switchToPreviewTab();
|
663
|
+
imageHighlightPage.imagePreviewTab()
|
664
|
+
.should('have.css', 'width', `${value}px`);
|
665
|
+
});
|
666
|
+
},
|
667
|
+
|
668
|
+
verifyImageDoesNotFitToCanvasInPreviewTab: () => {
|
669
|
+
createQuestionBasePage.steps.switchToEditTab();
|
670
|
+
imageHighlightPage.canvasWidthInputField()
|
671
|
+
.invoke('attr', 'value')
|
672
|
+
.then(($element) => {
|
673
|
+
createQuestionBasePage.steps.switchToPreviewTab();
|
674
|
+
imageHighlightPage.imagePreviewTab()
|
675
|
+
.should('not.have.css', 'width', `${$element}px`);
|
676
|
+
});
|
677
|
+
},
|
678
|
+
|
679
|
+
/**
|
680
|
+
* This function verifies highlight region aria label
|
681
|
+
* @param {number} index for the highlight region
|
682
|
+
* @param {string} ariaLabel for the highlight region
|
683
|
+
*/
|
684
|
+
verifyHighlightRegionAriaLabelPreviewTab: (index, ariaLabel) => {
|
685
|
+
imageHighlightPage.highlightPreviewTab()
|
686
|
+
.eq(index)
|
687
|
+
.should('have.attr', 'aria-label', ariaLabel);
|
688
|
+
},
|
689
|
+
|
334
690
|
/**
|
335
691
|
* This function verifies the alt text of the image
|
336
692
|
* @param {string} altText for the image in preview tab
|
@@ -474,7 +830,7 @@ const steps = {
|
|
474
830
|
},
|
475
831
|
|
476
832
|
/**
|
477
|
-
* @param {
|
833
|
+
* @param {number} index of highlight region
|
478
834
|
* @description this function verifies the highlight region is correct
|
479
835
|
*/
|
480
836
|
verifyCorrectHighlightRegion: (index) => {
|
@@ -517,6 +873,23 @@ const steps = {
|
|
517
873
|
});
|
518
874
|
},
|
519
875
|
|
876
|
+
verifyHighlightNumerationNotExist: () => {
|
877
|
+
imageHighlightPage.highlightNumerationPreviewTab()
|
878
|
+
.should('not.exist');
|
879
|
+
},
|
880
|
+
|
881
|
+
/**
|
882
|
+
* This function checks numeration array for highlights
|
883
|
+
* @param {string[]} numerationArray array of numeration to be checked for highlight options
|
884
|
+
*/
|
885
|
+
verifyHighlightEnumeration: (numerationArray) => {
|
886
|
+
numerationArray.forEach((numeration, index) => {
|
887
|
+
imageHighlightPage.highlightNumerationPreviewTab()
|
888
|
+
.eq(index)
|
889
|
+
.should('have.text', numeration);
|
890
|
+
});
|
891
|
+
},
|
892
|
+
|
520
893
|
/**
|
521
894
|
* @param {string[]} numerationArray array of numeration numbers, lowercase, uppercase
|
522
895
|
* @description this function verifies the numeration of Correct Answer Container
|
@@ -575,6 +948,56 @@ const steps = {
|
|
575
948
|
.should('have.css', 'border')
|
576
949
|
.and('match', /0px none/);
|
577
950
|
},
|
951
|
+
|
952
|
+
verifyDescriptorsAccordionIsCollapsed: () => {
|
953
|
+
imageHighlightPage.descriptorsAccordion()
|
954
|
+
.should('have.attr', 'aria-expanded', 'false');
|
955
|
+
},
|
956
|
+
|
957
|
+
expandDescriptorsAccordion: () => {
|
958
|
+
imageHighlightPage.descriptorsAccordion()
|
959
|
+
.click()
|
960
|
+
.should('have.attr', 'aria-expanded', 'true');
|
961
|
+
},
|
962
|
+
|
963
|
+
/**
|
964
|
+
* Verifies that the descriptors input fields are visible and correctly numbered.
|
965
|
+
* @param {number} countOfDescriptors - The total number of descriptor input fields to verify.
|
966
|
+
*/
|
967
|
+
verifyDescriptorsInputFieldContents: (countOfDescriptors) => {
|
968
|
+
for (let i = 0; i < countOfDescriptors; i++) {
|
969
|
+
imageHighlightPage.descriptorsInputField()
|
970
|
+
.eq(i)
|
971
|
+
.should('be.visible')
|
972
|
+
imageHighlightPage.descriptorsInputFieldNumeration()
|
973
|
+
.eq(i)
|
974
|
+
.should('have.text', `${i + 1}`);
|
975
|
+
}
|
976
|
+
},
|
977
|
+
|
978
|
+
/**
|
979
|
+
* Verifies that a specific descriptor input field contains the expected text.
|
980
|
+
* @param {number} index - The index of the descriptor input field to verify.
|
981
|
+
* @param {string} inputText - The expected text to be found in the input field.
|
982
|
+
*/
|
983
|
+
verifyDescriptorsInputField: (index, inputText) => {
|
984
|
+
imageHighlightPage.descriptorsInputField()
|
985
|
+
.eq(index)
|
986
|
+
.should('have.value', inputText)
|
987
|
+
},
|
988
|
+
|
989
|
+
/**
|
990
|
+
* Enters text into a specific descriptor input field and verifies the input.
|
991
|
+
* @param {number} index - The index of the descriptor input field where the text will be entered.
|
992
|
+
* @param {string} inputText - The text to enter into the input field.
|
993
|
+
*/
|
994
|
+
enterTextInDescriptorsInputField: (index, inputText) => {
|
995
|
+
imageHighlightPage.descriptorsInputField()
|
996
|
+
.eq(index)
|
997
|
+
.type(inputText)
|
998
|
+
.blur();
|
999
|
+
steps.verifyDescriptorsInputField(index, inputText);
|
1000
|
+
}
|
578
1001
|
}
|
579
1002
|
|
580
1003
|
const tests = {
|
@@ -586,6 +1009,13 @@ const tests = {
|
|
586
1009
|
...commonComponents.tests,
|
587
1010
|
...enableOuterBorderComponent.tests,
|
588
1011
|
...autoScoredStudentViewSettings.tests,
|
1012
|
+
...showAvailableOptionsToStudents.tests,
|
1013
|
+
...questionInstructionsComponent.tests,
|
1014
|
+
...backgroundImageUploadComponent.tests,
|
1015
|
+
...imageCanvasComponent.tests,
|
1016
|
+
...additionalSettingsPanel.tests,
|
1017
|
+
...gradingViewEnumerationComponent.tests,
|
1018
|
+
...additionalSettingsAccessibilitySectionComponent.tests,
|
589
1019
|
|
590
1020
|
/**
|
591
1021
|
* @param {string} scoringType scoring type 'All or nothing| Partial equal weights| Partial different weights'
|