itemengine-cypress-automation 1.0.204 → 1.0.205
Sign up to get free protection for your applications and to get access to all the features.
- package/cypress/e2e/ILC/AudioPlayerNew/audioOverviewAndTranscript.js +2 -2
- package/cypress/e2e/ILC/ChartsBar/Scoring/addAndDeleteBarAllOrNothingScoring.js +302 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/manuallyAndNonScored.js +282 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +385 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +386 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +386 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +337 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -1
- package/cypress/e2e/ILC/ChartsBar/chartFunctionalitySpecifyCorrectAnswerSection.js +258 -0
- package/cypress/e2e/ILC/ChartsBar/checkAnswerFunctionalityForAllViews.smoke.js +1 -1
- package/cypress/e2e/ILC/ChartsBar/gridSettings.js +439 -0
- package/cypress/e2e/ILC/ChartsBar/headerSection.js +105 -0
- package/cypress/e2e/ILC/ChartsBar/labelOptionsSection.js +450 -0
- package/cypress/e2e/ILC/ChartsBar/specifyCorrectAnswerSection.js +91 -0
- package/cypress/e2e/ILC/ChartsBar/toolSettings.js +73 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/manuallyAndNonScoredScoring.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/perDropzoneAlternativePointsGreaterThanCorrectPoints.js +3 -2
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/perDropzoneCorrectPointsEqualToAlternativePoints.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/perDropzoneCorrectPointsGreaterThanAlternativePoints.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/perDropzoneMinimumAndPenaltyScoring.js +6 -6
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/additionalSettings.js +169 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationDraggableOptionProperties.js +223 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationDraggableOptionsPanel.js +119 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationDropzoneBorderStyleProperties.js +113 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationDropzoneProperties.js +251 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +277 -0
- package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions1.smoke.js +0 -2
- package/cypress/e2e/ILC/EssayResponse/previewHyperlink.js +1 -5
- package/cypress/e2e/ILC/FeedbackScaleNew/editTabBasicSection.js +1 -0
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editTabBasicSection.js +4 -4
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownOptionsSection.js +1 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +14 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/styleAndLayoutCutomization.js +378 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +3 -3
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/specifyCorrectAnswerSection.js +3 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/styleAndLayoutCustomization.js +479 -0
- package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +3 -1
- package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsCellShadeCountBasics.js +7 -7
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingPenaltyScoring.js +1 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/manuallyAndNonScored.js +1 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -2
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -3
- package/cypress/e2e/ILC/ListOrderingDropdown/minimumScoringPenaltyPointsAndRoundingDropdown.js +7 -7
- package/cypress/e2e/ILC/ListOrderingDropdown/studentViewSettings.js +1 -1
- package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +3 -4
- package/cypress/e2e/ILC/ListOrderingNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +10 -9
- package/cypress/e2e/ILC/Matching/toolSettings.js +1 -0
- package/cypress/e2e/ILC/MultipleSelection/additionalSettings.js +1 -0
- package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +36 -16
- package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +326 -176
- package/cypress/e2e/ILC/MultipleSelection/blockCreateItem.js +2 -2
- package/cypress/e2e/ILC/MultipleSelection/manuallyAndNonScoredScoring.js +37 -15
- package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsBasic.js +38 -17
- package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +441 -186
- package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsBasic.js +33 -14
- package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +330 -164
- package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/manuallyAndNonScored.js +1 -1
- package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -1
- package/cypress/e2e/ILC/ShortTextResponseNew/manuallyAndNonScoredScoring.js +4 -4
- package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +20 -7
- package/cypress/e2e/ILC/SingleSelection/allOrNothingWithAlternativeAnswer.js +83 -66
- package/cypress/e2e/ILC/SingleSelection/blockCreateItem.js +2 -2
- package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +25 -17
- package/cypress/e2e/ILC/SingleSelection/trueOrFalseCreateItem.js +2 -2
- package/cypress/e2e/ILC/SingleSelectionGridNew/additionalSettings.js +89 -0
- package/cypress/e2e/ILC/SingleSelectionGridNew/editTabBasicSection.js +3 -3
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.js +2 -2
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.js +2 -2
- package/cypress/e2e/ILC/TextEntryMathWithImage/backgroundImageAndCanvasProperties.js +2 -2
- package/cypress/e2e/ILC/VideoResponseNew/studentViewSettingsCompactRecorderStyle.js +0 -2
- package/cypress/e2e/ILC/chartsDotsPlot/allOrNothingForAllViews.smoke.js +2 -2
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/allOrNothingPenaltyScoring.js +1 -1
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsBasic.js +15 -15
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +21 -21
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +17 -17
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +21 -21
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/toleranceThresholdScoring.js +1 -1
- package/cypress/e2e/ILC/chartsDotsPlot/selectChartTypeSection.js +8 -4
- package/cypress/e2e/ILC/chartsDotsPlot/toolSettings.js +0 -1
- package/cypress/fixtures/drawingToolbarOptionsAdditionalOptionsAndSpecialAndMathCharacters.js +2 -2
- package/cypress/pages/audioResponsePage.js +1 -1
- package/cypress/pages/chartsBarPage.js +785 -5
- package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +1 -0
- package/cypress/pages/components/backgroundImageUploadComponent.js +1 -1
- package/cypress/pages/components/barAndLineChartComponent.js +180 -9
- package/cypress/pages/components/chartsCommonComponent.js +1 -0
- package/cypress/pages/components/connectorStyleStyleAndLayoutCustomizationComponent.js +77 -0
- package/cypress/pages/components/essayResponseCommonComponents.js +2 -3
- package/cypress/pages/components/figCommonStyleAndLayoutComponent.js +1 -1
- package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +24 -7
- package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +8 -4
- package/cypress/pages/components/gridQuestionCommonComponent.js +1 -1
- package/cypress/pages/components/imageCanvasComponent.js +112 -2
- package/cypress/pages/components/index.js +1 -0
- package/cypress/pages/components/layoutSectionComponent.js +4 -3
- package/cypress/pages/dragAndDropIntoCategoriesPage.js +960 -3
- package/cypress/pages/drawingResponsePage.js +2 -2
- package/cypress/pages/fillInTheGapsDragAndDropPage.js +4 -3
- package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +18 -3
- package/cypress/pages/fillInTheGapsOverImageTextPage.js +65 -3
- package/cypress/pages/listOrderingPage.js +3 -3
- package/cypress/pages/multipleSelectionPage.js +77 -25
- package/cypress/pages/rulerPage.js +5 -0
- package/cypress/pages/singleSelectionPage.js +40 -1
- package/cypress/pages/videoResponsePage.js +1 -1
- package/package.json +1 -1
@@ -0,0 +1,479 @@
|
|
1
|
+
import { dialogBoxBase, fillInTheGapsOverImageTextPage } 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 borderStyles = ["Dashed", "Dotted", "Solid", "None"];
|
7
|
+
const connectorStyles = ["Circle", "Square", "Diamond", "None"]
|
8
|
+
|
9
|
+
describe('Create Item page - Fill in the gaps over image with text: Style and layout customization', () => {
|
10
|
+
before(() => {
|
11
|
+
cy.loginAs('admin');
|
12
|
+
});
|
13
|
+
|
14
|
+
describe('Style and layout customization accordion', () => {
|
15
|
+
abortEarlySetup();
|
16
|
+
before(() => {
|
17
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
18
|
+
cy.barsPreLoaderWait();
|
19
|
+
});
|
20
|
+
|
21
|
+
fillInTheGapsOverImageTextPage.tests.verifyStyleAndLayoutCustomizationAccordionProperties();
|
22
|
+
});
|
23
|
+
|
24
|
+
describe('Style and layout customization accordion: Text container section contents', () => {
|
25
|
+
abortEarlySetup();
|
26
|
+
before(() => {
|
27
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
28
|
+
cy.barsPreLoaderWait();
|
29
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
30
|
+
});
|
31
|
+
|
32
|
+
it('"Text container" label should be displayed', () => {
|
33
|
+
utilities.verifyInnerText(fillInTheGapsOverImageTextPage.componentContainerLabel(), 'Text container');
|
34
|
+
});
|
35
|
+
|
36
|
+
fillInTheGapsOverImageTextPage.tests.verifyFillColorSectionContents();
|
37
|
+
|
38
|
+
fillInTheGapsOverImageTextPage.tests.verifyBorderColorSectionContents();
|
39
|
+
|
40
|
+
fillInTheGapsOverImageTextPage.tests.verifyBorderStyleSectionContents('Dashed');
|
41
|
+
|
42
|
+
fillInTheGapsOverImageTextPage.tests.verifyFillColorTooltips();
|
43
|
+
|
44
|
+
fillInTheGapsOverImageTextPage.tests.verifyBorderColorTooltips();
|
45
|
+
|
46
|
+
fillInTheGapsOverImageTextPage.tests.verifyStyleAndLayoutCustomizationAccordionContentsCSSAndA11y('Dashed');
|
47
|
+
});
|
48
|
+
|
49
|
+
describe('Fill color - Edit tab', () => {
|
50
|
+
const modifiedColor = 'rgb(121, 60, 60)'
|
51
|
+
abortEarlySetup();
|
52
|
+
before(() => {
|
53
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
54
|
+
cy.barsPreLoaderWait();
|
55
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
56
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
57
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
58
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
59
|
+
});
|
60
|
+
|
61
|
+
it('When the default color block is in selected state in the "Fill color" section, then the background color of the text containers in the canvas image should be the default selected color', () => {
|
62
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageFillColor(0, css.color.optionsBg);
|
63
|
+
});
|
64
|
+
|
65
|
+
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 text containers in the canvas image', () => {
|
66
|
+
fillInTheGapsOverImageTextPage.steps.selectColorBlock(1);
|
67
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageFillColor(0, css.color.transparent);
|
68
|
+
});
|
69
|
+
|
70
|
+
it('When the user clicks on the "Edit color" button, modifies color for the selected color block, then the background color of the text containers in the canvas image should be the modified selected color', () => {
|
71
|
+
fillInTheGapsOverImageTextPage.steps.editColor(0);
|
72
|
+
colorPopupComponent.steps.clickInColorSaturationPalette();
|
73
|
+
colorPopupComponent.steps.clickOnOkButton();
|
74
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageFillColor(0, modifiedColor);
|
75
|
+
});
|
76
|
+
|
77
|
+
it('When the adds a new text container, then the background color of the newly added text container should be the modified selected color', () => {
|
78
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(60);
|
79
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageFillColor(0, modifiedColor);
|
80
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageFillColor(1, modifiedColor);
|
81
|
+
});
|
82
|
+
});
|
83
|
+
|
84
|
+
describe('Fill color - Preview tab', () => {
|
85
|
+
const modifiedColor = 'rgb(121, 60, 60)'
|
86
|
+
abortEarlySetup();
|
87
|
+
before(() => {
|
88
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
89
|
+
cy.barsPreLoaderWait();
|
90
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
91
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
92
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
93
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
94
|
+
fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
|
95
|
+
});
|
96
|
+
|
97
|
+
it('When the default color block is in selected state in the "Fill color" section, then the background color of the text containers in the preview tab should be the default selected color', () => {
|
98
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageFillColor(0, css.color.optionsBg);
|
99
|
+
});
|
100
|
+
|
101
|
+
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 text containers in the preview tab', () => {
|
102
|
+
fillInTheGapsOverImageTextPage.steps.switchToEditTab();
|
103
|
+
fillInTheGapsOverImageTextPage.steps.selectColorBlock(1);
|
104
|
+
fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
|
105
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageFillColor(0, css.color.transparent);
|
106
|
+
});
|
107
|
+
|
108
|
+
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', () => {
|
109
|
+
fillInTheGapsOverImageTextPage.steps.switchToEditTab();
|
110
|
+
fillInTheGapsOverImageTextPage.steps.editColor(0);
|
111
|
+
colorPopupComponent.steps.clickInColorSaturationPalette();
|
112
|
+
colorPopupComponent.steps.clickOnOkButton();
|
113
|
+
fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
|
114
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageFillColor(0, modifiedColor);
|
115
|
+
});
|
116
|
+
|
117
|
+
it('The background color of the text containers in the preview tab should be the modified selected color', () => {
|
118
|
+
fillInTheGapsOverImageTextPage.steps.switchToEditTab();
|
119
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(60);
|
120
|
+
fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
|
121
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageFillColor(0, modifiedColor);
|
122
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageFillColor(1, modifiedColor);
|
123
|
+
});
|
124
|
+
});
|
125
|
+
|
126
|
+
describe('Border color - Edit tab', () => {
|
127
|
+
const modifiedColor = 'rgb(121, 60, 60)'
|
128
|
+
abortEarlySetup();
|
129
|
+
before(() => {
|
130
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
131
|
+
cy.barsPreLoaderWait();
|
132
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
133
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
134
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
135
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
136
|
+
});
|
137
|
+
|
138
|
+
it('When the default color block is in selected state in the "Fill color" section, then the background color of the text containers in the canvas image should be the default selected color', () => {
|
139
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageBorderColor(0, `1px dashed ${css.color.activeComponentBorder}`);
|
140
|
+
});
|
141
|
+
|
142
|
+
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 text containers in the canvas image', () => {
|
143
|
+
fillInTheGapsOverImageTextPage.steps.selectColorBlock(3);
|
144
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageBorderColor(0, `1px dashed ${css.color.transparent}`);
|
145
|
+
});
|
146
|
+
|
147
|
+
it('When the user clicks on the "Edit color" button, modifies color for the selected color block, then the background color of the text containers in the canvas image should be the modified selected color', () => {
|
148
|
+
fillInTheGapsOverImageTextPage.steps.editColor(1);
|
149
|
+
colorPopupComponent.steps.clickInColorSaturationPalette();
|
150
|
+
colorPopupComponent.steps.clickOnOkButton();
|
151
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageBorderColor(0, `1px dashed ${modifiedColor}`);
|
152
|
+
});
|
153
|
+
|
154
|
+
it('When the adds a new text container, then the background color of the newly added text container should be the modified selected color', () => {
|
155
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(60);
|
156
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageBorderColor(0, `1px dashed ${modifiedColor}`);
|
157
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageBorderColor(1, `1px dashed ${modifiedColor}`);
|
158
|
+
});
|
159
|
+
});
|
160
|
+
|
161
|
+
describe('Border color - Preview tab', () => {
|
162
|
+
const modifiedColor = 'rgb(121, 60, 60)'
|
163
|
+
abortEarlySetup();
|
164
|
+
before(() => {
|
165
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
166
|
+
cy.barsPreLoaderWait();
|
167
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
168
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
169
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
170
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
171
|
+
fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
|
172
|
+
});
|
173
|
+
|
174
|
+
it('When the default color block is in selected state in the "Fill color" section, then the background color of the text containers in the preview tab should be the default selected color', () => {
|
175
|
+
fillInTheGapsOverImageTextPage.steps.verifyAnswerInputFieldBorderColor(0, `1px dashed ${css.color.activeComponentBorder}`);
|
176
|
+
});
|
177
|
+
|
178
|
+
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 text containers in the preview tab', () => {
|
179
|
+
fillInTheGapsOverImageTextPage.steps.switchToEditTab();
|
180
|
+
fillInTheGapsOverImageTextPage.steps.selectColorBlock(3);
|
181
|
+
fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
|
182
|
+
fillInTheGapsOverImageTextPage.steps.verifyAnswerInputFieldBorderColor(0, `0px none ${css.color.text}`);
|
183
|
+
});
|
184
|
+
|
185
|
+
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', () => {
|
186
|
+
fillInTheGapsOverImageTextPage.steps.switchToEditTab();
|
187
|
+
fillInTheGapsOverImageTextPage.steps.editColor(1);
|
188
|
+
colorPopupComponent.steps.clickInColorSaturationPalette();
|
189
|
+
colorPopupComponent.steps.clickOnOkButton();
|
190
|
+
fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
|
191
|
+
fillInTheGapsOverImageTextPage.steps.verifyAnswerInputFieldBorderColor(0, `1px dashed ${modifiedColor}`);
|
192
|
+
});
|
193
|
+
|
194
|
+
it('The background color of the text containers in the preview tab should be the modified selected color', () => {
|
195
|
+
fillInTheGapsOverImageTextPage.steps.switchToEditTab();
|
196
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(60);
|
197
|
+
fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
|
198
|
+
fillInTheGapsOverImageTextPage.steps.verifyAnswerInputFieldBorderColor(0, `1px dashed ${modifiedColor}`);
|
199
|
+
fillInTheGapsOverImageTextPage.steps.verifyAnswerInputFieldBorderColor(1, `1px dashed ${modifiedColor}`);
|
200
|
+
});
|
201
|
+
});
|
202
|
+
|
203
|
+
describe('Color popup functionality', () => {
|
204
|
+
abortEarlySetup();
|
205
|
+
before(() => {
|
206
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
207
|
+
cy.barsPreLoaderWait();
|
208
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
209
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
210
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
211
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
212
|
+
});
|
213
|
+
|
214
|
+
it('When the user clicks on the \'Edit color\' present in an \'Text color\' popup, then a select color popup should be displayed', () => {
|
215
|
+
fillInTheGapsOverImageTextPage.steps.editColor(0);
|
216
|
+
colorPopupComponent.steps.verifyColorPopupIsDisplayed();
|
217
|
+
});
|
218
|
+
|
219
|
+
colorPopupComponent.tests.verifyColorPopupSelectColorTitle();
|
220
|
+
|
221
|
+
colorPopupComponent.tests.verifySaturationAndOpacityGradientPalette('rgb(255, 255, 255)');
|
222
|
+
|
223
|
+
colorPopupComponent.tests.verifyColorHuePaletteAndHexInputField('rgb(255, 0, 0)', '#ffffff');
|
224
|
+
|
225
|
+
colorPopupComponent.tests.verifyColorPopupFunctionality();
|
226
|
+
});
|
227
|
+
|
228
|
+
describe('Color popup - Updating the selected color', () => {
|
229
|
+
abortEarlySetup();
|
230
|
+
before(() => {
|
231
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
232
|
+
cy.barsPreLoaderWait();
|
233
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
234
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
235
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
236
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
237
|
+
});
|
238
|
+
|
239
|
+
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', () => {
|
240
|
+
fillInTheGapsOverImageTextPage.steps.editColor(0);
|
241
|
+
colorPopupComponent.steps.clickInColorSaturationPalette();
|
242
|
+
colorPopupComponent.steps.verifySelectedColorBlock('rgb(121, 60, 60)');
|
243
|
+
colorPopupComponent.steps.verifySaturationPaletteColor('rgb(119, 60, 60)');
|
244
|
+
colorPopupComponent.steps.verifyHuePaletteColor('rgb(255, 0, 0)');
|
245
|
+
colorPopupComponent.steps.verifyHexValue('#793c3c');
|
246
|
+
colorPopupComponent.steps.verifyOpacityGradientPaletteColor('rgb(119, 60, 60)');
|
247
|
+
});
|
248
|
+
|
249
|
+
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', () => {
|
250
|
+
colorPopupComponent.steps.clickInColorHuePalette();
|
251
|
+
colorPopupComponent.steps.verifySelectedColorBlock('rgb(60, 121, 121)');
|
252
|
+
colorPopupComponent.steps.verifyHuePaletteColor('rgb(0, 255, 255)');
|
253
|
+
colorPopupComponent.steps.verifyHexValue('#3c7979');
|
254
|
+
colorPopupComponent.steps.verifyOpacityGradientPaletteColor('rgb(60, 119, 119)');
|
255
|
+
});
|
256
|
+
|
257
|
+
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', () => {
|
258
|
+
colorPopupComponent.steps.addInputToHexInputField('#ff0000');
|
259
|
+
colorPopupComponent.steps.verifyHexValue('#ff0000');
|
260
|
+
colorPopupComponent.steps.verifySaturationPaletteColor('rgb(255, 0, 0)');
|
261
|
+
colorPopupComponent.steps.verifyHuePaletteColor('rgb(255, 0, 0)');
|
262
|
+
colorPopupComponent.steps.verifyOpacityGradientPaletteColor('rgb(255, 0, 0)');
|
263
|
+
});
|
264
|
+
});
|
265
|
+
|
266
|
+
describe('Color popup - \'Cancel\' and \'Ok\' buttons', () => {
|
267
|
+
abortEarlySetup();
|
268
|
+
before(() => {
|
269
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
270
|
+
cy.barsPreLoaderWait();
|
271
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
272
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
273
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
274
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
275
|
+
});
|
276
|
+
|
277
|
+
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', () => {
|
278
|
+
fillInTheGapsOverImageTextPage.steps.editColor(0);
|
279
|
+
colorPopupComponent.steps.addInputToHexInputField('#ff0000');
|
280
|
+
colorPopupComponent.steps.clickOnOpacityGradientHuePalette();
|
281
|
+
colorPopupComponent.steps.clickOnCancelButton();
|
282
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
283
|
+
colorPopupComponent.steps.verifyColorBlockInOptionAccordion(0, 'rgb(245, 248, 255)');
|
284
|
+
});
|
285
|
+
|
286
|
+
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', () => {
|
287
|
+
cy.log('Pre-step: clicking on the edit color button')
|
288
|
+
fillInTheGapsOverImageTextPage.steps.editColor(0);
|
289
|
+
colorPopupComponent.steps.addInputToHexInputField('#ff0000');
|
290
|
+
colorPopupComponent.steps.clickOnOpacityGradientHuePalette();
|
291
|
+
colorPopupComponent.steps.clickOnOkButton();
|
292
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
293
|
+
colorPopupComponent.steps.verifyColorBlockInOptionAccordion(0, 'rgba(255, 0, 0, 0.5)');
|
294
|
+
});
|
295
|
+
});
|
296
|
+
|
297
|
+
describe('Border style - Edit tab', () => {
|
298
|
+
abortEarlySetup();
|
299
|
+
before(() => {
|
300
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
301
|
+
cy.barsPreLoaderWait();
|
302
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
303
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
304
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
305
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
306
|
+
});
|
307
|
+
|
308
|
+
it('When the "Dashed" border style is in selected state, then the border style of the text containers in the canvas image should be "Dashed"', () => {
|
309
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageBorderStyle(0, 'dashed');
|
310
|
+
});
|
311
|
+
|
312
|
+
borderStyles.forEach((style) => {
|
313
|
+
it(`When the user selects ${style}, then the border style of the text containers in the canvas image should update to ${style}`, () => {
|
314
|
+
fillInTheGapsOverImageTextPage.steps.selectBorderStyleToggleButton(style);
|
315
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageBorderStyle(0, style);
|
316
|
+
});
|
317
|
+
})
|
318
|
+
});
|
319
|
+
|
320
|
+
describe('Border style - Preview tab', () => {
|
321
|
+
abortEarlySetup();
|
322
|
+
before(() => {
|
323
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
324
|
+
cy.barsPreLoaderWait();
|
325
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
326
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
327
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
328
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
329
|
+
fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
|
330
|
+
});
|
331
|
+
|
332
|
+
it('When the "Dashed" border style is in selected state, then the border style of the text containers in the preview tab should be "Dashed"', () => {
|
333
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageBorderStyle(0, 'dashed');
|
334
|
+
});
|
335
|
+
|
336
|
+
borderStyles.forEach((style) => {
|
337
|
+
it(`When the user selects ${style}, then the border style of the text containers in the preview tab should update to ${style}`, () => {
|
338
|
+
fillInTheGapsOverImageTextPage.steps.switchToEditTab();
|
339
|
+
fillInTheGapsOverImageTextPage.steps.selectBorderStyleToggleButton(style);
|
340
|
+
fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
|
341
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaOverImageBorderStyle(0, style);
|
342
|
+
});
|
343
|
+
})
|
344
|
+
});
|
345
|
+
|
346
|
+
describe('Set height and width for all text containers contents', () => {
|
347
|
+
abortEarlySetup();
|
348
|
+
before(() => {
|
349
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
350
|
+
cy.barsPreLoaderWait();
|
351
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
352
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
353
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
354
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
355
|
+
});
|
356
|
+
|
357
|
+
it('"Set height and width for all text containers" label and checkbox should be displayed, By default the checkbox should be in unchecked state', () => {
|
358
|
+
utilities.verifyInnerText(fillInTheGapsOverImageTextPage.setHeightAndWidthForAllTextContainersCheckboxLabel(), 'Set height and width for all text containers');
|
359
|
+
fillInTheGapsOverImageTextPage.steps.verifySetHeightAndWidthForAllTextContainersCheckboxUncheckedState();
|
360
|
+
});
|
361
|
+
|
362
|
+
it('When the user checks "Set height and width for all text containers" checkbox, \'Height (px)\' and \'Width (px)\' labels and empty input fields should be displayed', () => {
|
363
|
+
fillInTheGapsOverImageTextPage.steps.checkSetHeightAndWidthForAllTextContainersCheckbox();
|
364
|
+
utilities.verifyInnerText(fillInTheGapsOverImageTextPage.textContainerHeightInputFieldLabel(), 'Height (px)')
|
365
|
+
fillInTheGapsOverImageTextPage.steps.verifyTextContainerHeightInputFieldValue('');
|
366
|
+
utilities.verifyInnerText(fillInTheGapsOverImageTextPage.textContainerWidthInputFieldLabel(), 'Width (px)')
|
367
|
+
fillInTheGapsOverImageTextPage.steps.verifyTextContainerWidthInputFieldValue('');
|
368
|
+
});
|
369
|
+
|
370
|
+
it('CSS of "Set height and width for all text containers" section contents', { tags: 'css' }, () => {
|
371
|
+
utilities.verifyCSS(fillInTheGapsOverImageTextPage.setHeightAndWidthForAllTextContainersCheckboxLabel(), {
|
372
|
+
'color': css.color.labelText,
|
373
|
+
'font-size': css.fontSize.normal,
|
374
|
+
'font-weight': css.fontWeight.regular
|
375
|
+
});
|
376
|
+
});
|
377
|
+
|
378
|
+
it('Accessibility of "Set height and width for all text containers" section contents', { tags: 'a11y' }, () => {
|
379
|
+
cy.checkAccessibility(fillInTheGapsOverImageTextPage.setHeightAndWidthForAllTextContainersCheckboxLabel().parents('[data-ngie-testid="set-height-and-width-for-all-text-containers-checkbox"]'));
|
380
|
+
});
|
381
|
+
});
|
382
|
+
|
383
|
+
describe('Set height and width for all text containers - Edit tab', () => {
|
384
|
+
abortEarlySetup();
|
385
|
+
before(() => {
|
386
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
387
|
+
cy.barsPreLoaderWait();
|
388
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
389
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
390
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
391
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
392
|
+
fillInTheGapsOverImageTextPage.steps.checkSetHeightAndWidthForAllTextContainersCheckbox();
|
393
|
+
});
|
394
|
+
|
395
|
+
it('When the user has not set any height or width values in the "Set height and width for all text containers" section, the dimensions of the text containers should be default', () => {
|
396
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaDimensions(30, 118);
|
397
|
+
});
|
398
|
+
|
399
|
+
it('When the user specifies the height and width, the dimensions of the text containers should update accordingly', () => {
|
400
|
+
fillInTheGapsOverImageTextPage.steps.setTextContainerHeight(100);
|
401
|
+
fillInTheGapsOverImageTextPage.steps.setTextContainerWidth(200);
|
402
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaDimensions(100, 200);
|
403
|
+
});
|
404
|
+
});
|
405
|
+
|
406
|
+
describe('Text container connector style contents', () => {
|
407
|
+
abortEarlySetup();
|
408
|
+
before(() => {
|
409
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
410
|
+
cy.barsPreLoaderWait();
|
411
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
412
|
+
});
|
413
|
+
|
414
|
+
it('"Text container connector style" label should be displayed', () => {
|
415
|
+
utilities.verifyInnerText(fillInTheGapsOverImageTextPage.textContainerConnectorStyleLabel(), 'Text container connector style');
|
416
|
+
});
|
417
|
+
|
418
|
+
it('"Connector end point shape" label along with four icon buttons - "Circle", "Square", "Diamond" and "None" should be displayed. By default, "Circle" option should be in selected state', () => {
|
419
|
+
utilities.verifyInnerText(fillInTheGapsOverImageTextPage.connectorEndPointShapeLabel(), 'Connector end point shape');
|
420
|
+
connectorStyles.forEach((option) => {
|
421
|
+
utilities.verifyElementVisibilityState(fillInTheGapsOverImageTextPage.connectorEndPointShapeOptions(option.toLowerCase()), 'exist');
|
422
|
+
});
|
423
|
+
fillInTheGapsOverImageTextPage.steps.verifyConnectorStyleOptionSelected('circle')
|
424
|
+
});
|
425
|
+
});
|
426
|
+
|
427
|
+
describe('Text container connector style - Edit tab', () => {
|
428
|
+
abortEarlySetup();
|
429
|
+
before(() => {
|
430
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
431
|
+
cy.barsPreLoaderWait();
|
432
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
433
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
434
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
435
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
436
|
+
fillInTheGapsOverImageTextPage.steps.selectResponseArea(0);
|
437
|
+
fillInTheGapsOverImageTextPage.steps.selectResponseAreaPointerStyle('left');
|
438
|
+
});
|
439
|
+
|
440
|
+
it('When the "Circle" connector style is in selected state, then the connector style of the text containers in the canvas image should be "Solid"', () => {
|
441
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaConnectorEndPointShape('Circle');
|
442
|
+
});
|
443
|
+
|
444
|
+
connectorStyles.forEach((button) => {
|
445
|
+
it(`When the user selects ${button}, then the connector style of the text containers in the canvas image should update to ${button}`, () => {
|
446
|
+
fillInTheGapsOverImageTextPage.steps.selectEndPointShapeButton(button);
|
447
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaConnectorEndPointShape(button);
|
448
|
+
});
|
449
|
+
})
|
450
|
+
});
|
451
|
+
|
452
|
+
describe('Text container connector style - Preview tab', () => {
|
453
|
+
abortEarlySetup();
|
454
|
+
before(() => {
|
455
|
+
fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
|
456
|
+
cy.barsPreLoaderWait();
|
457
|
+
fillInTheGapsOverImageTextPage.steps.expandStyleAndLayoutCustomizationAccordion();
|
458
|
+
fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
|
459
|
+
fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
|
460
|
+
fillInTheGapsOverImageTextPage.steps.insertResponseArea(10);
|
461
|
+
fillInTheGapsOverImageTextPage.steps.selectResponseArea(0);
|
462
|
+
fillInTheGapsOverImageTextPage.steps.selectResponseAreaPointerStyle('left');
|
463
|
+
fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
|
464
|
+
});
|
465
|
+
|
466
|
+
it('When the "Circle" connector style is in selected state, then the connector style of the text containers in the canvas image should be "Solid"', () => {
|
467
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaConnectorEndPointShapePreviewTab('Circle');
|
468
|
+
});
|
469
|
+
|
470
|
+
connectorStyles.forEach((button) => {
|
471
|
+
it(`When the user selects ${button}, then the connector style of the text containers in the canvas image should update to ${button}`, () => {
|
472
|
+
fillInTheGapsOverImageTextPage.steps.switchToEditTab();
|
473
|
+
fillInTheGapsOverImageTextPage.steps.selectEndPointShapeButton(button);
|
474
|
+
fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
|
475
|
+
fillInTheGapsOverImageTextPage.steps.verifyResponseAreaConnectorEndPointShapePreviewTab(button);
|
476
|
+
});
|
477
|
+
})
|
478
|
+
});
|
479
|
+
});
|
@@ -90,7 +90,7 @@ describe('Create item page - Grid fill: All or nothing', () => {
|
|
90
90
|
itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
|
91
91
|
});
|
92
92
|
};
|
93
|
-
|
93
|
+
//Failed due to https://redmine.zeuslearning.com/issues/565569
|
94
94
|
it('When the user selects \'Grading\' view without attempting the question, correct answer tick should be displayed in correct answer cell', () => {
|
95
95
|
if (view === 'Grading view') {
|
96
96
|
studentViewPage.steps.submitResponse();
|
@@ -106,6 +106,7 @@ describe('Create item page - Grid fill: All or nothing', () => {
|
|
106
106
|
gridFillPage.steps.verifyCorrectIncorrectResponseIconNotExistPreviewTab(0, 1);
|
107
107
|
gridFillPage.steps.verifyCorrectResponseIconCorrectAnswerSection(0, 0);
|
108
108
|
gridFillPage.steps.verifyCorrectResponseIconCorrectAnswerSection(0, 1);
|
109
|
+
gridFillPage.steps.verifyCorrectIncorrectStatusMessageNotExists();
|
109
110
|
});
|
110
111
|
|
111
112
|
it('When the user attempts the question incorrectly, then the user should be awarded 0 points and on switching to \'Grading\' view, incorrect icon should be displayed in the incorrect cell, incorrect answer border around incorrect cell and correct icon should be displayed in the correct cell, correct answer border around correct cell and a status message with text \'Your answer is incorrect\' in question preview', () => {
|
@@ -136,6 +137,7 @@ describe('Create item page - Grid fill: All or nothing', () => {
|
|
136
137
|
studentViewPage.steps.submitResponse();
|
137
138
|
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'exist');
|
138
139
|
gridFillPage.steps.clickOnGoToGradingViewButton();
|
140
|
+
|
139
141
|
gradingViewPage.steps.verifyGradingViewScore(0, 20);
|
140
142
|
};
|
141
143
|
if (view === 'Question preview' || view === 'Item preview') {
|
@@ -124,41 +124,41 @@ describe('Create item page - Grid fill : Partial equal weights', () => {
|
|
124
124
|
gridFillPage.steps.uncheckMatchExactPositionOfCellsCheckbox();
|
125
125
|
gridFillPage.steps.addInputToCellShadeCountInputField(2);
|
126
126
|
gridFillPage.steps.selectAutoScoredScoringSubtype('Partial equal weights');
|
127
|
-
gridFillPage.steps.allotPoints(
|
127
|
+
gridFillPage.steps.allotPoints(6);
|
128
128
|
//gridFillPage.steps.checkAllowStudentsToCheckAnswerCheckbox();
|
129
129
|
});
|
130
130
|
|
131
131
|
it('When the user selects \'Award minimum score\' from the minimum scoring dropdown, does not attempt the question and switches to grading view, then the user should be awarded with minimum points', () => {
|
132
132
|
gridFillPage.steps.expandMinimumScoringDropdown();
|
133
133
|
gridFillPage.steps.selectOptionFromMinimumScoringDropdown('Award minimum score');
|
134
|
-
gridFillPage.steps.allotMinimumPoints(
|
134
|
+
gridFillPage.steps.allotMinimumPoints(4);
|
135
135
|
gridFillPage.steps.switchToPreviewTab();
|
136
136
|
gridFillPage.steps.switchToGradingView();
|
137
|
-
gridFillPage.steps.verifyPreviewScore(
|
137
|
+
gridFillPage.steps.verifyPreviewScore(4, 6);
|
138
138
|
gridFillPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
|
139
139
|
});
|
140
140
|
|
141
141
|
it('When the user has selected \'Award minimum score\' from the minimum scoring dropdown, attempts the question incorrectly and switches to grading view, the user should be awarded with minimum points', () => {
|
142
142
|
gridFillPage.steps.resetQuestionPreview();
|
143
143
|
gridFillPage.steps.selectCellPreviewTab(1, 0);
|
144
|
-
gridFillPage.steps.verifyPreviewScore(
|
144
|
+
gridFillPage.steps.verifyPreviewScore(4, 6);
|
145
145
|
});
|
146
146
|
|
147
147
|
it('When the user selects \'Award minimum score only if attempted\' from the minimum scoring dropdown, does not attempt the question and switches to grading view, then the user should be awarded with 0 points', () => {
|
148
148
|
gridFillPage.steps.switchToEditTab();
|
149
149
|
gridFillPage.steps.expandMinimumScoringDropdown();
|
150
150
|
gridFillPage.steps.selectOptionFromMinimumScoringDropdown('Award minimum score only if attempted');
|
151
|
-
gridFillPage.steps.allotMinimumPoints(
|
151
|
+
gridFillPage.steps.allotMinimumPoints(5);
|
152
152
|
gridFillPage.steps.switchToPreviewTab();
|
153
153
|
gridFillPage.steps.switchToGradingView();
|
154
|
-
gridFillPage.steps.verifyPreviewScore(0,
|
154
|
+
gridFillPage.steps.verifyPreviewScore(0, 6);
|
155
155
|
gridFillPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
|
156
156
|
});
|
157
157
|
|
158
158
|
it('When the user has selected \'Award minimum score\' from the minimum scoring dropdown, attempts the question incorrectly and switches to grading view, the user should be awarded with minimum points', () => {
|
159
159
|
gridFillPage.steps.resetQuestionPreview();
|
160
160
|
gridFillPage.steps.selectCellPreviewTab(1, 0);
|
161
|
-
gridFillPage.steps.verifyPreviewScore(
|
161
|
+
gridFillPage.steps.verifyPreviewScore(5, 6);
|
162
162
|
});
|
163
163
|
});
|
164
164
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { listOrderingPage } from "../../../../pages";
|
2
2
|
import abortEarlySetup from "../../../../support/helpers/abortEarly";
|
3
|
+
const options = ['seed', 'sprout', 'plant', 'flower'];
|
3
4
|
|
4
5
|
describe('Create item page - List ordering: All or nothing penalty scoring', () => {
|
5
6
|
before(() => {
|
@@ -103,6 +103,7 @@ describe('Create Item page - List ordering: Manually and non scored', () => {
|
|
103
103
|
it('When the user attempts the question partially correct, then on switching to \'Grading\' view, correct icon should be displayed besides the correct answer responses, incorrect icon should be displayed besides incorrect answer response, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers along with numeration should be displayed', () => {
|
104
104
|
listOrderingPage.steps.resetQuestionPreview();
|
105
105
|
listOrderingPage.steps.selectPositionForAllOptionsPreviewTab([{ optionIndex: 0, position: '2' }, { optionIndex: 1, position: '1' }, { optionIndex: 2, position: '4' }, { optionIndex: 3, position: '3' }]);
|
106
|
+
listOrderingPage.steps.switchToGradingView();
|
106
107
|
listOrderingPage.steps.verifyCorrectOptionIconDropdownLayout(0);
|
107
108
|
listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(1);
|
108
109
|
listOrderingPage.steps.verifyCorrectOptionIconDropdownLayout(2);
|
@@ -212,14 +212,14 @@ describe('Create Item page - List ordering: Partial equal weights scoring with a
|
|
212
212
|
listOrderingPage.steps.verifyOptionsPositionInCorrectAnswerSection(options, ['3', '1', '2', '4']);
|
213
213
|
listOrderingPage.steps.verifyCorrectIncorrectStatusMessageNotExists();
|
214
214
|
listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
|
215
|
-
cy.log('Overachiever case: When the user attempts the question with more number of correct responses from the correct accordion than the alternative accordion and clicks on \'Check answer\' button, correct icons should be displayed for the alternative accordion response, incorrect icon should be displayed for the correct accordion responses, correct/incorrect status message and correct answer section should not be displayed')
|
215
|
+
/*cy.log('Overachiever case: When the user attempts the question with more number of correct responses from the correct accordion than the alternative accordion and clicks on \'Check answer\' button, correct icons should be displayed for the alternative accordion response, incorrect icon should be displayed for the correct accordion responses, correct/incorrect status message and correct answer section should not be displayed')
|
216
216
|
listOrderingPage.steps.checkAnswer();
|
217
217
|
listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(0);
|
218
218
|
listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(1);
|
219
219
|
listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(2);
|
220
220
|
listOrderingPage.steps.verifyCorrectOptionIconDropdownLayout(3);
|
221
221
|
listOrderingPage.steps.verifyCorrectIncorrectStatusMessageNotExists();
|
222
|
-
listOrderingPage.steps.verifyCorrectAnswerSectionNotExists()
|
222
|
+
listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();*/
|
223
223
|
});
|
224
224
|
});
|
225
225
|
});
|
@@ -203,7 +203,6 @@ describe('Create Item page - List ordering: Partial equal weights scoring with a
|
|
203
203
|
listOrderingPage.steps.expandCorrectAnswerAccordion();
|
204
204
|
listOrderingPage.steps.allotPoints(50);
|
205
205
|
listOrderingPage.steps.switchToPreviewTab();
|
206
|
-
|
207
206
|
listOrderingPage.steps.selectPositionForAllOptionsPreviewTab([{ optionIndex: 0, position: '3' }, { optionIndex: 1, position: '4' }, { optionIndex: 2, position: '2' }, { optionIndex: 3, position: '1' }]);
|
208
207
|
listOrderingPage.steps.verifyPreviewScore(12.5, 50);
|
209
208
|
listOrderingPage.steps.switchToGradingView();
|
@@ -214,14 +213,14 @@ describe('Create Item page - List ordering: Partial equal weights scoring with a
|
|
214
213
|
listOrderingPage.steps.verifyOptionsPositionInCorrectAnswerSection(options, ['2', '3', '4', '1']);
|
215
214
|
listOrderingPage.steps.verifyCorrectIncorrectStatusMessageNotExists();
|
216
215
|
listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
|
217
|
-
cy.log('Overachiever case: When the user attempts the question with more number of correct responses from the alternative accordion than the correct accordion and clicks on \'Check answer\' button, correct icons should be displayed for the correct accordion response, incorrect icon should be displayed for the alternative accordion responses, correct/incorrect status message and correct answer section should not be displayed')
|
216
|
+
/*cy.log('Overachiever case: When the user attempts the question with more number of correct responses from the alternative accordion than the correct accordion and clicks on \'Check answer\' button, correct icons should be displayed for the correct accordion response, incorrect icon should be displayed for the alternative accordion responses, correct/incorrect status message and correct answer section should not be displayed')
|
218
217
|
listOrderingPage.steps.checkAnswer();
|
219
218
|
listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(0);
|
220
219
|
listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(1);
|
221
220
|
listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(2);
|
222
221
|
listOrderingPage.steps.verifyCorrectOptionIconDropdownLayout(3);
|
223
222
|
listOrderingPage.steps.verifyCorrectIncorrectStatusMessageNotExists();
|
224
|
-
listOrderingPage.steps.verifyCorrectAnswerSectionNotExists()
|
223
|
+
listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();*/
|
225
224
|
});
|
226
225
|
});
|
227
226
|
});
|