itemengine-cypress-automation 1.0.244 → 1.0.245
Sign up to get free protection for your applications and to get access to all the features.
- package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/ChartsBar/headerSection.js +1 -16
- package/cypress/e2e/ILC/ChartsLine/headerSection.js +1 -18
- package/cypress/e2e/ILC/ContentBlocks/editTabBasics.js +3 -2
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +4 -2
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/draggableOptions.js +4 -2
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +5 -2
- package/cypress/e2e/ILC/EssayResponse/equationEditor.smoke.js +2 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/clickAndDrop.js +4 -2
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/draggableOptions.js +4 -2
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/editTabBasicSection.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +5 -3
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editTabBasicSection.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/headerSection.js +5 -2
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/clickAndDrop.js +6 -4
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/draggableOptions.js +1 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +8 -2
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownOptionsSection.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +2 -3
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +6 -2
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/supportedFileTypes.js +3 -2
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +4 -2
- package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +2 -3
- package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +3 -2
- package/cypress/e2e/ILC/Graphing/headerSection.js +3 -2
- package/cypress/e2e/ILC/GridFill/headerSection.js +3 -1
- package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +3 -3
- package/cypress/e2e/ILC/ImageHighlight/additionalSettingsBasic.js +2 -0
- package/cypress/e2e/ILC/ImageHighlight/headerSection.js +4 -2
- package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +8 -6
- package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +8 -2
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +225 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialDifferentWeightsBasic.js +89 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +225 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +225 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +405 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +201 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialEqualWeightsBasic.js +147 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +171 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +203 -0
- package/cypress/e2e/ILC/Matching/clickAndDrop.js +5 -3
- package/cypress/e2e/ILC/Matching/headerSection.js +10 -2
- package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +17 -4
- package/cypress/e2e/ILC/Matching/styleAndLayoutCustomizationDropzoneBorderStyleProperties.js +113 -0
- package/cypress/e2e/ILC/Matching/styleAndLayoutCustomizationDropzoneProperties.js +251 -0
- package/cypress/e2e/ILC/Matching/styleAndLayoutCustomizationLayoutProperties.js +227 -0
- package/cypress/e2e/ILC/MultipleSelection/headerSection.js +5 -2
- package/cypress/e2e/ILC/MultipleSelectionGridNew/headerSection.js +9 -2
- package/cypress/e2e/ILC/NumberLine/headerSection.js +3 -2
- package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +4 -3
- package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +4 -2
- package/cypress/e2e/ILC/SingleSelection/headerSection.js +5 -2
- package/cypress/e2e/ILC/SingleSelectionGridNew/headerSection.js +9 -2
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +4 -4
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +2 -2
- package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +3 -3
- package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +4 -4
- package/cypress/e2e/ILC/TextEntryMath/editTabScoringSection.js +6 -6
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.js +5 -5
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodsWithoutSetResponse.js +10 -10
- package/cypress/e2e/ILC/TextEntryMath/minimumScoringPenaltyPointsAndRoundingDropdown.js +3 -3
- package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +1 -1
- package/cypress/e2e/ILC/TextSelection/headerSection.js +5 -2
- package/cypress/e2e/ILC/TextSelection/questionInstructionsAndQuestion.js +2 -1
- package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +2 -3
- package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +2 -1
- package/cypress/fixtures/drawingToolbarOptionsAdditionalOptionsAndSpecialAndMathCharacters.js +2 -2
- package/cypress/pages/components/autoScoredSetCorrectAnswerSection.js +11 -0
- package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +27 -9
- package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +3 -2
- package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +2 -1
- package/cypress/pages/components/optionsWrapperComponent.js +2 -2
- package/cypress/pages/components/scoringSectionBaseEditTab.js +2 -2
- package/cypress/pages/createItemPage.js +1 -1
- package/cypress/pages/dialogBoxBase.js +7 -13
- package/cypress/pages/dragAndDropIntoCategoriesPage.js +5 -4
- package/cypress/pages/graphingPage.js +7 -4
- package/cypress/pages/gridFillPage.js +16 -15
- package/cypress/pages/matchingPage.js +613 -6
- package/cypress/pages/multipleSelectionGridPage.js +5 -4
- package/cypress/pages/multipleSelectionPage.js +5 -4
- package/cypress/pages/numberLinePage.js +13 -2
- package/cypress/pages/shortTextResponsePage.js +3 -2
- package/cypress/pages/textEntryMathPage.js +7 -0
- package/package.json +1 -1
@@ -0,0 +1,113 @@
|
|
1
|
+
import { matchingPage } from "../../../pages";
|
2
|
+
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
3
|
+
import utilities from "../../../support/helpers/utilities";
|
4
|
+
|
5
|
+
const borderStyleOptions = ['dashed', 'dotted', 'solid', 'none'];
|
6
|
+
|
7
|
+
describe('Matching - Style and layout customization', () => {
|
8
|
+
before(() => {
|
9
|
+
cy.loginAs('admin');
|
10
|
+
});
|
11
|
+
|
12
|
+
describe('Style and Layout customization accordion: Dropzone border style contents and functionality', () => {
|
13
|
+
abortEarlySetup();
|
14
|
+
before(() => {
|
15
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
16
|
+
cy.barsPreLoaderWait();
|
17
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
18
|
+
});
|
19
|
+
|
20
|
+
it(`Border style label and ${borderStyleOptions} should be displayed and by default dashed should be selected`, () => {
|
21
|
+
utilities.verifyInnerText(matchingPage.dropzoneBorderStyleLabel(), 'Border style');
|
22
|
+
borderStyleOptions.forEach((option) => {
|
23
|
+
utilities.verifyElementVisibilityState(matchingPage.dropzoneBorderStyleOptions(option), 'exist');
|
24
|
+
})
|
25
|
+
matchingPage.steps.verifyDropzoneBorderStyleSelected('dashed');
|
26
|
+
});
|
27
|
+
|
28
|
+
it('By default \'Dashed\' borders should be displayed for the dropzone in the edit tab', () => {
|
29
|
+
matchingPage.steps.verifyDropzoneBorderStyleSpecifyCorrectAnswer('dashed');
|
30
|
+
});
|
31
|
+
|
32
|
+
borderStyleOptions.forEach((option) => {
|
33
|
+
it(`When user selects ${option} then the borders in the dropzone should be ${option}`, () => {
|
34
|
+
matchingPage.steps.selectDropzoneBorderStyleOption(option);
|
35
|
+
matchingPage.steps.verifyDropzoneBorderStyleSpecifyCorrectAnswer(option);
|
36
|
+
});
|
37
|
+
});
|
38
|
+
});
|
39
|
+
|
40
|
+
describe('Style and Layout customization accordion: Dropzone border style preview functionality', () => {
|
41
|
+
abortEarlySetup();
|
42
|
+
before(() => {
|
43
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
44
|
+
cy.barsPreLoaderWait();
|
45
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
46
|
+
matchingPage.steps.switchToPreviewTab();
|
47
|
+
});
|
48
|
+
|
49
|
+
it('By default \'Dashed\' borders should be displayed for the dropzone in the preview tab', () => {
|
50
|
+
matchingPage.steps.verifyDropzoneBorderStylePreviewTab('dashed');
|
51
|
+
});
|
52
|
+
|
53
|
+
borderStyleOptions.forEach((option) => {
|
54
|
+
it(`When user selects ${option} then the borders in the dropzone should be ${option}`, () => {
|
55
|
+
matchingPage.steps.switchToEditTab();
|
56
|
+
matchingPage.steps.selectDropzoneBorderStyleOption(option);
|
57
|
+
matchingPage.steps.switchToPreviewTab();
|
58
|
+
matchingPage.steps.verifyDropzoneBorderStylePreviewTab(option);
|
59
|
+
});
|
60
|
+
});
|
61
|
+
});
|
62
|
+
|
63
|
+
describe('Style and Layout customization accordion: Draggable options border style contents and functionality', () => {
|
64
|
+
abortEarlySetup();
|
65
|
+
before(() => {
|
66
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
67
|
+
cy.barsPreLoaderWait();
|
68
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
69
|
+
});
|
70
|
+
|
71
|
+
it(`Border style label and ${borderStyleOptions} should be displayed and by default solid should be selected`, () => {
|
72
|
+
utilities.verifyInnerText(matchingPage.draggableOptionsBorderStyleLabel(), 'Border style');
|
73
|
+
borderStyleOptions.forEach((option) => {
|
74
|
+
utilities.verifyElementVisibilityState(matchingPage.draggableOptionsBorderStyleOptions(option), 'exist');
|
75
|
+
})
|
76
|
+
matchingPage.steps.verifyDraggableOptionsBorderStyleSelected('solid');
|
77
|
+
});
|
78
|
+
|
79
|
+
it('By default \'Solid\' borders should be displayed for the draggable options in the edit tab', () => {
|
80
|
+
matchingPage.steps.verifyDropzoneBorderStyleSpecifyCorrectAnswer('dashed');
|
81
|
+
});
|
82
|
+
|
83
|
+
borderStyleOptions.forEach((option) => {
|
84
|
+
it(`When user selects ${option} then the borders in the draggable options should be ${option}`, () => {
|
85
|
+
matchingPage.steps.selectDraggableOptionsBorderStyleOption(option);
|
86
|
+
matchingPage.steps.verifyDraggableOptionsBorderStyleSpecifyCorrectAnswer(option);
|
87
|
+
});
|
88
|
+
});
|
89
|
+
});
|
90
|
+
|
91
|
+
describe('Style and Layout customization accordion: Draggable options border style preview functionality', () => {
|
92
|
+
abortEarlySetup();
|
93
|
+
before(() => {
|
94
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
95
|
+
cy.barsPreLoaderWait();
|
96
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
97
|
+
matchingPage.steps.switchToPreviewTab();
|
98
|
+
});
|
99
|
+
|
100
|
+
it('By default \'Solid\' borders should be displayed for the draggable options in the preview tab', () => {
|
101
|
+
matchingPage.steps.verifyDraggableOptionsBorderStylePreviewTab('solid');
|
102
|
+
});
|
103
|
+
|
104
|
+
borderStyleOptions.forEach((option) => {
|
105
|
+
it(`When user selects ${option} then the borders in the draggable options should be ${option}`, () => {
|
106
|
+
matchingPage.steps.switchToEditTab();
|
107
|
+
matchingPage.steps.selectDraggableOptionsBorderStyleOption(option);
|
108
|
+
matchingPage.steps.switchToPreviewTab();
|
109
|
+
matchingPage.steps.verifyDraggableOptionsBorderStylePreviewTab(option);
|
110
|
+
});
|
111
|
+
});
|
112
|
+
});
|
113
|
+
});
|
@@ -0,0 +1,251 @@
|
|
1
|
+
import { dialogBoxBase, matchingPage } from "../../../pages";
|
2
|
+
import { colorPopupComponent } from "../../../pages/components";
|
3
|
+
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
4
|
+
import utilities from "../../../support/helpers/utilities";
|
5
|
+
const css = Cypress.env('css');
|
6
|
+
const modifiedColor = 'rgb(121, 60, 60)'
|
7
|
+
|
8
|
+
describe('Matching - Style and layout customization accordion', () => {
|
9
|
+
before(() => {
|
10
|
+
cy.loginAs('admin');
|
11
|
+
});
|
12
|
+
|
13
|
+
describe('Style and Layout customization accordion: Fill color edit tab contents and functionality', () => {
|
14
|
+
abortEarlySetup();
|
15
|
+
before(() => {
|
16
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
17
|
+
cy.barsPreLoaderWait();
|
18
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
19
|
+
});
|
20
|
+
|
21
|
+
it('Grid label should be displayed', () => {
|
22
|
+
utilities.verifyInnerText(matchingPage.dropzoneLabel(), 'Dropzone');
|
23
|
+
});
|
24
|
+
|
25
|
+
it('\'Fill color\' label and two color blocks and an \'Edit color\' button should be displayed. The selected color block should be of color \'rgb(245, 248, 255)\' and the other color block should have \'No color\'', () => {
|
26
|
+
utilities.verifyInnerText(matchingPage.fillColorLabel(), 'Fill color');
|
27
|
+
matchingPage.steps.verifyColorBlockColor(0, css.color.matrixDropzoneCellBg);
|
28
|
+
matchingPage.steps.verifyColorBlockSelectedState(0);
|
29
|
+
matchingPage.steps.verifyColorBlockColor(1, css.color.none);
|
30
|
+
utilities.verifyInnerText(utilities.getNthElement(matchingPage.editColorButton(), 0), 'Edit color');
|
31
|
+
utilities.verifyElementVisibilityState(matchingPage.editColorButton(), 'visible');
|
32
|
+
});
|
33
|
+
|
34
|
+
it('When the user hovers over the color blocks in the \'Fill color\' section, hex code of the selected color should be displayed in a tooltip', () => {
|
35
|
+
utilities.getNthElement(matchingPage.colorBlock(), 0)
|
36
|
+
.verifyTooltip('#F5F8FF');
|
37
|
+
utilities.getNthElement(matchingPage.colorBlock(), 1)
|
38
|
+
.verifyTooltip('None');
|
39
|
+
});
|
40
|
+
|
41
|
+
it('By default, the first color option should be in selected state', () => {
|
42
|
+
matchingPage.steps.verifyColorBlockSelectedState(0);
|
43
|
+
});
|
44
|
+
|
45
|
+
it('When the default color block is in selected state in the \'Fill color\' section, then the background color of the grid in the specify correct answer section should be the default selected color', () => {
|
46
|
+
matchingPage.steps.verifyFillColorSpecifyCorrectAnswerSection(css.color.matrixDropzoneCellBg);
|
47
|
+
});
|
48
|
+
|
49
|
+
it('When the user selects the \'None\' color block, it should get in selected state and the no background color should be present for the grid in the specify correct answer section', () => {
|
50
|
+
matchingPage.steps.selectColorBlock(1);
|
51
|
+
matchingPage.steps.verifyFillColorSpecifyCorrectAnswerSection(css.color.defaultBackground);
|
52
|
+
});
|
53
|
+
|
54
|
+
it('When the user clicks on the \'Edit color\' button, modifies color for the selected color block, then the background color of the grid in the specify correct answer section should be the modified selected color', () => {
|
55
|
+
matchingPage.steps.editColor(0);
|
56
|
+
colorPopupComponent.steps.clickInColorSaturationPalette();
|
57
|
+
colorPopupComponent.steps.clickOnOkButton();
|
58
|
+
matchingPage.steps.verifyFillColorSpecifyCorrectAnswerSection(modifiedColor);
|
59
|
+
});
|
60
|
+
});
|
61
|
+
|
62
|
+
describe('Style and Layout customization accordion: Fill color preview tab functionality', () => {
|
63
|
+
abortEarlySetup();
|
64
|
+
before(() => {
|
65
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
66
|
+
cy.barsPreLoaderWait();
|
67
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
68
|
+
});
|
69
|
+
|
70
|
+
it('When the default color block is in selected state in the \'Fill color\' section, then the background color of the grid in the preview tab should be the default selected color', () => {
|
71
|
+
matchingPage.steps.switchToPreviewTab();
|
72
|
+
matchingPage.steps.verifyFillColorPreviewTab(css.color.matrixDropzoneCellBg);
|
73
|
+
});
|
74
|
+
|
75
|
+
it('When the user selects the \'None\' color block, it should get in selected state and the no background color should be present for the grid in the preview tab', () => {
|
76
|
+
matchingPage.steps.switchToEditTab();
|
77
|
+
matchingPage.steps.selectColorBlock(1);
|
78
|
+
matchingPage.steps.switchToPreviewTab();
|
79
|
+
matchingPage.steps.verifyFillColorPreviewTab(css.color.defaultBackground);
|
80
|
+
});
|
81
|
+
|
82
|
+
it('When the user clicks on the \'Edit color\' button, modifies color for the selected color block, then the color block should get updated accordingly', () => {
|
83
|
+
matchingPage.steps.switchToEditTab();
|
84
|
+
matchingPage.steps.editColor(0);
|
85
|
+
colorPopupComponent.steps.clickInColorSaturationPalette();
|
86
|
+
colorPopupComponent.steps.clickOnOkButton();
|
87
|
+
matchingPage.steps.switchToPreviewTab();
|
88
|
+
matchingPage.steps.verifyFillColorPreviewTab(modifiedColor);
|
89
|
+
});
|
90
|
+
});
|
91
|
+
|
92
|
+
describe('Style and Layout customization accordion: Border color edit tab contents and functionality', () => {
|
93
|
+
abortEarlySetup();
|
94
|
+
before(() => {
|
95
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
96
|
+
cy.barsPreLoaderWait();
|
97
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
98
|
+
});
|
99
|
+
|
100
|
+
it('\'Border color\' label and two color blocks and an \'Edit color\' button should be displayed. The selected color block should be of color \'rgb(82, 0, 255) and the other color block should have \'No color\'', () => {
|
101
|
+
utilities.verifyInnerText(matchingPage.borderColorLabel(), 'Border color');
|
102
|
+
utilities.verifyInnerText(utilities.getNthElement(matchingPage.editColorButton(), 1), 'Edit color');
|
103
|
+
utilities.verifyElementVisibilityState(matchingPage.editColorButton(), 'visible');
|
104
|
+
matchingPage.steps.verifyColorBlockColor(2, css.color.activeComponentBorder);
|
105
|
+
matchingPage.steps.verifyColorBlockSelectedState(2);
|
106
|
+
matchingPage.steps.verifyColorBlockColor(3, css.color.none);
|
107
|
+
});
|
108
|
+
|
109
|
+
it('When the user hovers over the color blocks in the \'Border color\' section, hex code of the selected color should be displayed in a tooltip', () => {
|
110
|
+
utilities.getNthElement(matchingPage.colorBlock(), 2)
|
111
|
+
.verifyTooltip('#5200FF');
|
112
|
+
utilities.getNthElement(matchingPage.colorBlock(), 3)
|
113
|
+
.verifyTooltip('None');
|
114
|
+
});
|
115
|
+
|
116
|
+
it('By default, the first color option should be in selected state', () => {
|
117
|
+
matchingPage.steps.verifyColorBlockSelectedState(2);
|
118
|
+
});
|
119
|
+
|
120
|
+
it('When the default color block is in selected state in the \'Border color\' section, then the border color of the grid in the specify correct answer section should be the default selected color', () => {
|
121
|
+
matchingPage.steps.verifyBorderColorSpecifyCorrectAnswer(css.color.activeComponentBorder);
|
122
|
+
});
|
123
|
+
|
124
|
+
it('When the user selects the \'None\' color block, it should get in selected state and the no border color should be present for the grid in the specify correct answer section', () => {
|
125
|
+
matchingPage.steps.selectColorBlock(3);
|
126
|
+
matchingPage.steps.verifyBorderColorSpecifyCorrectAnswer(css.color.defaultBackground);
|
127
|
+
});
|
128
|
+
|
129
|
+
it('When the user clicks on the \'Edit color\' button, modifies color for the selected color block, then the border color of the grid in the specify correct answer section should be the modified selected color', () => {
|
130
|
+
matchingPage.steps.editColor(1);
|
131
|
+
colorPopupComponent.steps.clickInColorSaturationPalette();
|
132
|
+
colorPopupComponent.steps.clickOnOkButton();
|
133
|
+
matchingPage.steps.verifyBorderColorSpecifyCorrectAnswer(modifiedColor);
|
134
|
+
});
|
135
|
+
});
|
136
|
+
|
137
|
+
describe('Style and Layout customization accordion: Border color preview tab functionality', () => {
|
138
|
+
abortEarlySetup();
|
139
|
+
before(() => {
|
140
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
141
|
+
cy.barsPreLoaderWait();
|
142
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
143
|
+
matchingPage.steps.switchToPreviewTab();
|
144
|
+
});
|
145
|
+
|
146
|
+
it('When the default color block is in selected state in the \'Fill color\' section, then the border color of the grid in the preview tab should be the default selected color', () => {
|
147
|
+
matchingPage.steps.verifyBorderColorPreviewTab(css.color.activeComponentBorder);
|
148
|
+
});
|
149
|
+
|
150
|
+
it('When the user selects the \'None\' color block, it should get in selected state and the no border color should be present for the grid in the preview tab', () => {
|
151
|
+
matchingPage.steps.switchToEditTab();
|
152
|
+
matchingPage.steps.selectColorBlock(3);
|
153
|
+
matchingPage.steps.switchToPreviewTab();
|
154
|
+
matchingPage.steps.verifyBorderColorPreviewTab(css.color.defaultBackground);
|
155
|
+
});
|
156
|
+
|
157
|
+
it('When the user clicks on the \'Edit color\' button, modifies color for the selected color block, then the color block should get updated accordingly', () => {
|
158
|
+
matchingPage.steps.switchToEditTab();
|
159
|
+
matchingPage.steps.editColor(1);
|
160
|
+
colorPopupComponent.steps.clickInColorSaturationPalette();
|
161
|
+
colorPopupComponent.steps.clickOnOkButton();
|
162
|
+
matchingPage.steps.switchToPreviewTab();
|
163
|
+
matchingPage.steps.verifyBorderColorPreviewTab(modifiedColor);
|
164
|
+
});
|
165
|
+
});
|
166
|
+
|
167
|
+
describe('Color popup functionality', () => {
|
168
|
+
abortEarlySetup();
|
169
|
+
before(() => {
|
170
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
171
|
+
cy.barsPreLoaderWait();
|
172
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
173
|
+
});
|
174
|
+
|
175
|
+
it('When the user clicks on the \'Edit color\' present in an \'Fill color\' popup, then a select color popup should be displayed', () => {
|
176
|
+
matchingPage.steps.editColor(0);
|
177
|
+
colorPopupComponent.steps.verifyColorPopupIsDisplayed();
|
178
|
+
});
|
179
|
+
|
180
|
+
colorPopupComponent.tests.verifyColorPopupSelectColorTitle();
|
181
|
+
|
182
|
+
colorPopupComponent.tests.verifySaturationAndOpacityGradientPalette('rgb(255, 255, 255)');
|
183
|
+
|
184
|
+
colorPopupComponent.tests.verifyColorHuePaletteAndHexInputField('rgb(255, 0, 0)', '#ffffff');
|
185
|
+
|
186
|
+
colorPopupComponent.tests.verifyColorPopupFunctionality();
|
187
|
+
});
|
188
|
+
|
189
|
+
describe('Color popup - Updating the selected color', () => {
|
190
|
+
abortEarlySetup();
|
191
|
+
before(() => {
|
192
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
193
|
+
cy.barsPreLoaderWait();
|
194
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
195
|
+
});
|
196
|
+
|
197
|
+
it('When the user moves the color picker in the color saturation palette, color in the selected color block and the hex code should change, color in the hue color palette and the opacity value should not change', () => {
|
198
|
+
matchingPage.steps.editColor(0);
|
199
|
+
colorPopupComponent.steps.clickInColorSaturationPalette();
|
200
|
+
colorPopupComponent.steps.verifySelectedColorBlock('rgb(121, 60, 60)');
|
201
|
+
colorPopupComponent.steps.verifySaturationPaletteColor('rgb(119, 60, 60)');
|
202
|
+
colorPopupComponent.steps.verifyHuePaletteColor('rgb(255, 0, 0)');
|
203
|
+
colorPopupComponent.steps.verifyHexValue('#793c3c');
|
204
|
+
colorPopupComponent.steps.verifyOpacityGradientPaletteColor('rgb(119, 60, 60)');
|
205
|
+
});
|
206
|
+
|
207
|
+
it('When the user moves the color picker in the color hue palette, color in the selected color block, the hex code and the saturation color palette should change and the opacity value should not change', () => {
|
208
|
+
colorPopupComponent.steps.clickInColorHuePalette();
|
209
|
+
colorPopupComponent.steps.verifySelectedColorBlock('rgb(60, 121, 121)');
|
210
|
+
colorPopupComponent.steps.verifyHuePaletteColor('rgb(0, 255, 255)');
|
211
|
+
colorPopupComponent.steps.verifyHexValue('#3c7979');
|
212
|
+
colorPopupComponent.steps.verifyOpacityGradientPaletteColor('rgb(60, 119, 119)');
|
213
|
+
});
|
214
|
+
|
215
|
+
it('When the user changes the color using hex code, the color in color saturation palette and color hue palette should change and the opacity value should not change', () => {
|
216
|
+
colorPopupComponent.steps.addInputToHexInputField('#ff0000');
|
217
|
+
colorPopupComponent.steps.verifyHexValue('#ff0000');
|
218
|
+
colorPopupComponent.steps.verifySaturationPaletteColor('rgb(255, 0, 0)');
|
219
|
+
colorPopupComponent.steps.verifyHuePaletteColor('rgb(255, 0, 0)');
|
220
|
+
colorPopupComponent.steps.verifyOpacityGradientPaletteColor('rgb(255, 0, 0)');
|
221
|
+
});
|
222
|
+
});
|
223
|
+
|
224
|
+
describe('Color popup - \'Cancel\' and \'Ok\' buttons', () => {
|
225
|
+
abortEarlySetup();
|
226
|
+
before(() => {
|
227
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
228
|
+
cy.barsPreLoaderWait();
|
229
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
230
|
+
});
|
231
|
+
|
232
|
+
it('When the user modifies the selected color in the color popup and clicks on \'Cancel\' button, then the popup should close, the color block should not change and the modifications in the color popup should not persist', () => {
|
233
|
+
matchingPage.steps.editColor(0);
|
234
|
+
colorPopupComponent.steps.addInputToHexInputField('#ff0000');
|
235
|
+
colorPopupComponent.steps.clickOnOpacityGradientHuePalette();
|
236
|
+
colorPopupComponent.steps.clickOnCancelButton();
|
237
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
238
|
+
matchingPage.steps.verifyColorBlockColor(0, css.color.matrixDropzoneCellBg);
|
239
|
+
});
|
240
|
+
|
241
|
+
it('When the user modifies the selected color in the color popup and clicks on \'Ok\' button, then the popup should close, the color block should change to the new selected color and the modifications in the color popup should persist', () => {
|
242
|
+
cy.log('Pre-step: clicking on the edit color button')
|
243
|
+
matchingPage.steps.editColor(0);
|
244
|
+
colorPopupComponent.steps.addInputToHexInputField('#ff0000');
|
245
|
+
colorPopupComponent.steps.clickOnOpacityGradientHuePalette();
|
246
|
+
colorPopupComponent.steps.clickOnOkButton();
|
247
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
248
|
+
matchingPage.steps.verifyColorBlockColor(0, 'rgba(255, 0, 0, 0.5)');
|
249
|
+
});
|
250
|
+
});
|
251
|
+
});
|
@@ -0,0 +1,227 @@
|
|
1
|
+
import { matchingPage } from "../../../pages";
|
2
|
+
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
3
|
+
import utilities from "../../../support/helpers/utilities";
|
4
|
+
|
5
|
+
const rowColumnOptions = ['Small','Normal', 'Wide'];
|
6
|
+
const dropzoneDimensions = ['Auto', 'Custom'];
|
7
|
+
|
8
|
+
describe('Matching - Style and layout customization accordion', () => {
|
9
|
+
before(() => {
|
10
|
+
cy.loginAs('admin');
|
11
|
+
});
|
12
|
+
|
13
|
+
describe('Style and Layout customization accordion', () => {
|
14
|
+
abortEarlySetup();
|
15
|
+
before(() => {
|
16
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
17
|
+
cy.barsPreLoaderWait();
|
18
|
+
});
|
19
|
+
|
20
|
+
matchingPage.tests.verifyStyleAndLayoutCustomizationAccordionProperties();
|
21
|
+
|
22
|
+
it('\'Layout\' label should be displayed', () => {
|
23
|
+
utilities.verifyInnerText(matchingPage.layoutLabel(), 'Layout')
|
24
|
+
});
|
25
|
+
});
|
26
|
+
|
27
|
+
describe('Style and Layout customization accordion: Row spacing and Column spacing edit tab contents and functionality', () => {
|
28
|
+
abortEarlySetup();
|
29
|
+
before(() => {
|
30
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
31
|
+
cy.barsPreLoaderWait();
|
32
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
33
|
+
});
|
34
|
+
|
35
|
+
it('\'Row spacing\' label and dropdown should be displayed and by default \'Normal\' option is selected', () => {
|
36
|
+
utilities.verifyInnerText(matchingPage.rowSpacingDropdownLabel(), 'Row spacing');
|
37
|
+
utilities.verifyInnerText(matchingPage.rowSpacingDropdown(), 'Normal');
|
38
|
+
utilities.verifyElementVisibilityState(matchingPage.rowSpacingDropdown(), 'visible');
|
39
|
+
});
|
40
|
+
|
41
|
+
it(`When user expands \'Row spacing\' then ${rowColumnOptions} should be displayed then \'Normal\' option is selected`, () => {
|
42
|
+
matchingPage.steps.expandRowSpacingDropdown();
|
43
|
+
rowColumnOptions.forEach((option, index) => {
|
44
|
+
utilities.verifyInnerText(utilities.getNthElement(matchingPage.rowSpacingDropdownOptions(), index), option);
|
45
|
+
});
|
46
|
+
matchingPage.steps.verifyRowSpacingOptionSelected('Normal');
|
47
|
+
matchingPage.steps.selectRowSpacingDropdownOption('Normal');
|
48
|
+
utilities.verifyElementVisibilityState(matchingPage.dropdownList(), 'notExist');
|
49
|
+
});
|
50
|
+
|
51
|
+
rowColumnOptions.forEach((option) => {
|
52
|
+
it(`When user selects \'Row spacing\' ${option} option then ${option} spacing should be displayed between the row options`, () => {
|
53
|
+
matchingPage.steps.expandRowSpacingDropdown();
|
54
|
+
matchingPage.steps.selectRowSpacingDropdownOption(option);
|
55
|
+
matchingPage.steps.verifyRowSpacingSpecifyCorrectAnswerSection(option);
|
56
|
+
});
|
57
|
+
});
|
58
|
+
|
59
|
+
it('\'Column spacing\' label and dropdown should be displayed and by default \'Normal\' option is selected', () => {
|
60
|
+
utilities.verifyInnerText(matchingPage.columnSpacingDropdownLabel(), 'Column spacing');
|
61
|
+
utilities.verifyInnerText(matchingPage.columnSpacingDropdown(), 'Normal');
|
62
|
+
utilities.verifyElementVisibilityState(matchingPage.columnSpacingDropdown(), 'visible');
|
63
|
+
});
|
64
|
+
|
65
|
+
it(`When user expands \'Column spacing\' then ${rowColumnOptions} should be displayed then \'Normal\' option is selected`, () => {
|
66
|
+
matchingPage.steps.expandColumnSpacingDropdown();
|
67
|
+
rowColumnOptions.forEach((option, index) => {
|
68
|
+
utilities.verifyInnerText(utilities.getNthElement(matchingPage.columnSpacingDropdownOptions(), index), option);
|
69
|
+
});
|
70
|
+
matchingPage.steps.verifyColumnSpacingOptionSelected('Normal');
|
71
|
+
matchingPage.steps.selectColumnSpacingDropdownOption('Normal');
|
72
|
+
utilities.verifyElementVisibilityState(matchingPage.dropdownList(), 'notExist');
|
73
|
+
});
|
74
|
+
|
75
|
+
rowColumnOptions.forEach((option) => {
|
76
|
+
it(`When user selects \'Column spacing\' ${option} option then ${option} spacing should be displayed between the columns`, () => {
|
77
|
+
matchingPage.steps.expandColumnSpacingDropdown();
|
78
|
+
matchingPage.steps.selectColumnSpacingDropdownOption(option);
|
79
|
+
matchingPage.steps.verifyColumnSpacingSpecifyCorrectAnswerSection(option);
|
80
|
+
});
|
81
|
+
});
|
82
|
+
});
|
83
|
+
|
84
|
+
describe('Style and Layout customization accordion: Row spacing and Column spacing preview tab functionality', () => {
|
85
|
+
abortEarlySetup();
|
86
|
+
before(() => {
|
87
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
88
|
+
cy.barsPreLoaderWait();
|
89
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
90
|
+
});
|
91
|
+
rowColumnOptions.forEach((option) => {
|
92
|
+
it(`When user selects \'Row spacing\' ${option} option then ${option} spacing should be displayed between the row options`, () => {
|
93
|
+
matchingPage.steps.expandRowSpacingDropdown();
|
94
|
+
matchingPage.steps.selectRowSpacingDropdownOption(option);
|
95
|
+
matchingPage.steps.switchToPreviewTab();
|
96
|
+
matchingPage.steps.verifyRowSpacingPreviewTab(option);
|
97
|
+
matchingPage.steps.switchToEditTab();
|
98
|
+
});
|
99
|
+
});
|
100
|
+
|
101
|
+
rowColumnOptions.forEach((option) => {
|
102
|
+
it(`When user selects \'Column spacing\' ${option} option then ${option} spacing should be displayed between the columns`, () => {
|
103
|
+
matchingPage.steps.expandColumnSpacingDropdown();
|
104
|
+
matchingPage.steps.selectColumnSpacingDropdownOption(option);
|
105
|
+
matchingPage.steps.switchToPreviewTab();
|
106
|
+
matchingPage.steps.verifyColumnSpacingPreviewTab(option);
|
107
|
+
matchingPage.steps.switchToEditTab();
|
108
|
+
});
|
109
|
+
});
|
110
|
+
});
|
111
|
+
|
112
|
+
// Remove skip once https://redmine.zeuslearning.com/issues/580203 and https://redmine.zeuslearning.com/issues/580201 is resolved and make changes in the sheet
|
113
|
+
describe.skip('Style and Layout customization accordion: Dropzone dimensions edit tab contents and functionality', () => {
|
114
|
+
abortEarlySetup();
|
115
|
+
before(() => {
|
116
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
117
|
+
cy.barsPreLoaderWait()
|
118
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
119
|
+
});
|
120
|
+
|
121
|
+
it('\'Dropzone dimensions\' label and dropdown should be displayed and by default \'Auto\' option is selected', () => {
|
122
|
+
utilities.verifyInnerText(matchingPage.dropzoneDimensionsLabel(), 'Dropzone dimensions');
|
123
|
+
utilities.verifyInnerText(matchingPage.dropzoneDimensionsDropdown(), 'Auto');
|
124
|
+
});
|
125
|
+
|
126
|
+
it(`When user expands \'Dropzone dimensions\' then ${dropzoneDimensions} should be displayed then \'Auto\' option is selected`, () => {
|
127
|
+
matchingPage.steps.expandDropzoneDimensionsDropdown();
|
128
|
+
dropzoneDimensions.forEach((option, index) => {
|
129
|
+
utilities.verifyInnerText(utilities.getNthElement(matchingPage.dropzoneDimensionsDropdownOptions(), index), option);
|
130
|
+
});
|
131
|
+
matchingPage.steps.verifyDropzoneDimensionsDropdownOptionSelected('Auto');
|
132
|
+
matchingPage.steps.selectDropzoneDimensionsDropdownOption('Auto');
|
133
|
+
utilities.verifyElementVisibilityState(matchingPage.dropdownList(), 'notExist')
|
134
|
+
});
|
135
|
+
|
136
|
+
dropzoneDimensions.forEach((option) => {
|
137
|
+
it(`When user selects \'Dropzone dimensions\' ${option} option then ${option} spacing should be displayed between the columns`, () => {
|
138
|
+
matchingPage.steps.expandDropzoneDimensionsDropdown();
|
139
|
+
matchingPage.steps.selectDropzoneDimensionsDropdownOption(option);
|
140
|
+
matchingPage.steps.verifyDropzoneDimensionsSpecifyCorrectAnswer(option);
|
141
|
+
});
|
142
|
+
});
|
143
|
+
|
144
|
+
it(`When user selects ${dropzoneDimensions[1]} then Specify for all dropzone columns, Specify for first dropzone column only radio buttons should be displayed`, () => {
|
145
|
+
utilities.verifyInnerText(matchingPage.specifyForAllDropzoneColumnsLabel(), 'Specify for all dropzone columns');
|
146
|
+
utilities.verifyElementVisibilityState(matchingPage.specifyForAllDropzoneColumnsRadioButton(), 'exist');
|
147
|
+
utilities.verifyInnerText(matchingPage.specifyForFirstDropzoneColumnOnlyLabel(), 'Specify for first dropzone column only');
|
148
|
+
utilities.verifyElementVisibilityState(matchingPage.specifyForFirstDropzoneColumnOnlyRadioButton(), 'exist');
|
149
|
+
});
|
150
|
+
|
151
|
+
it('By default, \'Specify for all columns\' should be selected and \'Dropzone width (px)\' label and input field should be displayed with 225 by default', () => {
|
152
|
+
matchingPage.steps.verifyCustomDimensionsRadioButtonSelected('Specify for all dropzone columns');
|
153
|
+
utilities.verifyInnerText(matchingPage.dropzoneWidthLabel(), 'Dropzone width (px)');
|
154
|
+
matchingPage.steps.verifyDropzoneWidthInputField(0, '225');
|
155
|
+
});
|
156
|
+
|
157
|
+
it('User should not be able to enter value below 108 and above 320 in the \'Dropzone width (px)\' input field', () => {
|
158
|
+
matchingPage.steps.enterTextInDropzoneWidthInputField(0, 90);
|
159
|
+
matchingPage.steps.verifyDropzoneWidthInputField(0, '108');
|
160
|
+
matchingPage.steps.enterTextInDropzoneWidthInputField(0, 400);
|
161
|
+
matchingPage.steps.verifyDropzoneWidthInputField(0, '320');
|
162
|
+
});
|
163
|
+
|
164
|
+
it('When the user edits the \'Dropzone width (px)\' input field value then it should be reflected in the specify correct answer section', () => {
|
165
|
+
matchingPage.steps.enterTextInDropzoneWidthInputField(0, 160);
|
166
|
+
matchingPage.steps.verifyDropzoneWidthInputField(0, '160');
|
167
|
+
matchingPage.steps.verifyDropzoneWidthSpecifyCorrectAnswer(0, 160);
|
168
|
+
matchingPage.steps.verifyDropzoneWidthSpecifyCorrectAnswer(1, 160);
|
169
|
+
matchingPage.steps.verifyDropzoneWidthSpecifyCorrectAnswer(2, 160);
|
170
|
+
});
|
171
|
+
|
172
|
+
it('When the user selects Specify for first column only \'Dropzone width (px)\' label and input field should be displayed', () => {
|
173
|
+
matchingPage.steps.selectCustomDimensionsRadioButton('Specify for first dropzone column only');
|
174
|
+
matchingPage.steps.verifyCustomDimensionsRadioButtonSelected('Specify for first dropzone column only');
|
175
|
+
utilities.verifyInnerText(matchingPage.dropzoneWidthLabel(), 'Dropzone width (px)');
|
176
|
+
});
|
177
|
+
|
178
|
+
it('When the user edits the \'Dropzone width (px)\' input field value then it should be reflected in the specify correct answer section only for the first column', () => {
|
179
|
+
matchingPage.steps.enterTextInDropzoneWidthInputField(0, 200);
|
180
|
+
matchingPage.steps.verifyDropzoneWidthInputField(0, '200');
|
181
|
+
matchingPage.steps.verifyDropzoneWidthSpecifyCorrectAnswer(0, 200);
|
182
|
+
matchingPage.steps.verifyDropzoneDoeNotHaveSpecifiedWidthSpecifyCorrectAnswer(1, 200);
|
183
|
+
matchingPage.steps.verifyDropzoneDoeNotHaveSpecifiedWidthSpecifyCorrectAnswer(2, 200);
|
184
|
+
});
|
185
|
+
});
|
186
|
+
|
187
|
+
// Remove skip once https://redmine.zeuslearning.com/issues/580203 and https://redmine.zeuslearning.com/issues/580201 is resolved and make changes in the sheet
|
188
|
+
describe.skip('Style and Layout customization accordion: Dropzone dimensions preview tab functionality', () => {
|
189
|
+
abortEarlySetup();
|
190
|
+
before(() => {
|
191
|
+
matchingPage.steps.navigateToCreateQuestion('matching');
|
192
|
+
cy.barsPreLoaderWait();
|
193
|
+
matchingPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
194
|
+
});
|
195
|
+
|
196
|
+
dropzoneDimensions.forEach((option) => {
|
197
|
+
it(`When user selects \'Dropzone dimensions\' ${option} option then ${option} spacing should be displayed between the columns`, () => {
|
198
|
+
matchingPage.steps.expandDropzoneDimensionsDropdown();
|
199
|
+
matchingPage.steps.selectDropzoneDimensionsDropdownOption(option);
|
200
|
+
matchingPage.steps.switchToPreviewTab();
|
201
|
+
matchingPage.steps.verifyDropzoneDimensionsPreviewTab(option);
|
202
|
+
matchingPage.steps.switchToEditTab();
|
203
|
+
});
|
204
|
+
});
|
205
|
+
|
206
|
+
it('When the user selects \'Specify for all columns\' radio button edits the \'Dropzone width (px)\' input field value then it should be reflected in the preview tab', () => {
|
207
|
+
matchingPage.steps.enterTextInDropzoneWidthInputField(0, 160);
|
208
|
+
matchingPage.steps.verifyDropzoneWidthInputField(0, '160');
|
209
|
+
matchingPage.steps.switchToPreviewTab();
|
210
|
+
matchingPage.steps.verifyDropzoneWidthPreviewTab(0, 160);
|
211
|
+
matchingPage.steps.verifyDropzoneWidthPreviewTab(1, 160);
|
212
|
+
matchingPage.steps.verifyDropzoneWidthPreviewTab(2, 160);
|
213
|
+
});
|
214
|
+
|
215
|
+
it('When the user selects \'Specify for first column\' radio button edits the \'Dropzone width (px)\' input field value then it should be reflected in the preview tab only for the first column', () => {
|
216
|
+
matchingPage.steps.switchToEditTab();
|
217
|
+
matchingPage.steps.selectCustomDimensionsRadioButton('Specify for first dropzone column only');
|
218
|
+
matchingPage.steps.verifyCustomDimensionsRadioButtonSelected('Specify for first dropzone column only');
|
219
|
+
matchingPage.steps.enterTextInDropzoneWidthInputField(0, 200);
|
220
|
+
matchingPage.steps.verifyDropzoneWidthInputField(0, 200);
|
221
|
+
matchingPage.steps.switchToPreviewTab();
|
222
|
+
matchingPage.steps.verifyDropzoneWidthPreviewTab(0, 200);
|
223
|
+
matchingPage.steps.verifyDropzoneDoeNotHaveSpecifiedWidthPreviewTab(1, 200);
|
224
|
+
matchingPage.steps.verifyDropzoneDoeNotHaveSpecifiedWidthPreviewTab(2, 200);
|
225
|
+
});
|
226
|
+
});
|
227
|
+
});
|
@@ -42,11 +42,14 @@ describe('Create item page - Multiple selection: Header section and Saving quest
|
|
42
42
|
});
|
43
43
|
|
44
44
|
describe('Validation error messages', () => {
|
45
|
-
dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(
|
45
|
+
dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
|
46
46
|
|
47
47
|
it('Validation error messages should be displayed below required input fields', () => {
|
48
48
|
multipleSelectionPage.steps.verifyQuestionInstructionsErrorMessageIsNotDisplayed();
|
49
|
-
multipleSelectionPage.steps.
|
49
|
+
multipleSelectionPage.steps.verifyPointsFieldErrorMessageIsNotDisplayed();
|
50
|
+
multipleSelectionPage.steps.verifyOptionsInputFieldErrorMessage(0);
|
51
|
+
multipleSelectionPage.steps.verifySpecifyCorrectAnswerErrorIconIsVisible();
|
52
|
+
multipleSelectionPage.steps.verifySpecifyCorrectAnswerErrorMessage();
|
50
53
|
});
|
51
54
|
|
52
55
|
it('Validation error messages should disappear when required input fields are filled', () => {
|
@@ -42,11 +42,18 @@ describe('Create item page - Multiple selection grid: Header section and Saving
|
|
42
42
|
});
|
43
43
|
|
44
44
|
describe('Validation error messages', () => {
|
45
|
-
dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(
|
45
|
+
dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
|
46
46
|
|
47
47
|
it('Validation error messages should be displayed below required input fields', () => {
|
48
48
|
multipleSelectionGridPage.steps.verifyQuestionInstructionsErrorMessageIsNotDisplayed();
|
49
|
-
multipleSelectionGridPage.steps.
|
49
|
+
multipleSelectionGridPage.steps.verifyPointsFieldErrorMessageIsNotDisplayed();
|
50
|
+
utilities.verifyInnerText(utilities.getNthElement(multipleSelectionGridPage.errorMessage(), 0), 'Error: Please enter some text.');
|
51
|
+
utilities.verifyInnerText(utilities.getNthElement(multipleSelectionGridPage.errorMessage(), 1), 'Error: Please set a correct answer.');
|
52
|
+
for (let index = 1; index < 4; index++) {
|
53
|
+
multipleSelectionGridPage.steps.verifyErrorIconInSpecifyColumnsAndRowsGrid(index);
|
54
|
+
}
|
55
|
+
multipleSelectionGridPage.steps.verifySpecifyCorrectAnswerErrorIconIsVisible();
|
56
|
+
multipleSelectionGridPage.steps.verifySpecifyCorrectAnswerErrorMessage();
|
50
57
|
});
|
51
58
|
|
52
59
|
it('Validation error messages should disappear when required input fields are filled', () => {
|
@@ -46,11 +46,12 @@ describe('Create item page - Number line: Header section and saving question', (
|
|
46
46
|
});
|
47
47
|
|
48
48
|
describe('Validation error messages', () => {
|
49
|
-
dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(
|
49
|
+
dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
|
50
50
|
|
51
51
|
it('Validation error messages should be displayed below required input fields', () => {
|
52
52
|
numberLinePage.steps.verifyQuestionInstructionsErrorMessageIsNotDisplayed();
|
53
|
-
numberLinePage.steps.
|
53
|
+
numberLinePage.steps.verifyPointsFieldErrorMessageIsNotDisplayed();
|
54
|
+
utilities.verifyInnerText(numberLinePage.errorMessage(), 'Error: Please set a correct answer.');
|
54
55
|
});
|
55
56
|
|
56
57
|
it('Validation error messages should disappear when required input fields are filled', () => {
|