itemengine-cypress-automation 1.0.86 → 1.0.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +30 -30
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +1 -1
- package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +568 -0
- package/cypress/e2e/ILC/EssayResponse/editAndPreviewTabScoringSection.js +86 -0
- package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +389 -0
- package/cypress/e2e/ILC/EssayResponse/gradingViewAndCorrectAnswerViewContents.smoke.js +112 -0
- package/cypress/e2e/ILC/EssayResponse/headerSection.js +68 -0
- package/cypress/e2e/ILC/EssayResponse/previewAddTable.js +290 -0
- package/cypress/e2e/ILC/EssayResponse/previewContentsForAllViews.smoke.js +79 -0
- package/cypress/e2e/ILC/EssayResponse/previewEditTable.js +379 -0
- package/cypress/e2e/ILC/EssayResponseBasic/essayResponseBasicCustomizeFormattingOptions.js +207 -0
- package/cypress/e2e/ILC/EssayResponseBasic/gradingViewAndCorrectAnswerViewContents.smoke.js +115 -0
- package/cypress/e2e/ILC/EssayResponseBasic/previewContentsForAllViews.smoke.js +79 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/partialDifferentWeightsBasic.js +159 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +507 -29
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/previewContentsForAllViews.smoke.js +6 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +272 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/specialCharactersSection.js +300 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/specifyCorrectAnswerSection.js +3 -3
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/studentViewSettings.js +204 -0
- package/cypress/e2e/ILC/Protractor/protractorEditTabBasicsSection.js +4 -4
- package/cypress/e2e/ILC/Protractor/protractorEditTabFunctionality.js +1 -1
- package/cypress/e2e/ILC/Ruler/rulerEditTabBasicsSection.js +4 -4
- package/cypress/e2e/ILC/Ruler/rulerEditTabFunctionality.js +1 -1
- package/cypress/e2e/ILC/SingleSelection/editTabScoringSection.js +1 -3
- package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +205 -0
- package/cypress/e2e/ILC/TextEntryMath/editTabScoringSection.js +259 -0
- package/cypress/e2e/ILC/TextEntryMath/minimumScoringPenaltyPointsAndRoundingDropdown.js +202 -0
- package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +613 -0
- package/cypress/e2e/ILC/TextEntryMath/specifyCorrectAnswerSection.js +71 -0
- package/cypress/fixtures/equationEditorCategoriesAndSymbols .js +318 -318
- package/cypress/fixtures/theme/ilc.json +3 -0
- package/cypress/pages/components/backgroundImageUploadComponent.js +1 -2
- package/cypress/pages/components/colorPopupComponent.js +26 -3
- package/cypress/pages/components/createCustomCategoryFlyout.js +351 -46
- package/cypress/pages/components/customizeSpecialCharacterComponent.js +165 -0
- package/cypress/pages/components/equationEditorFlyout.js +124 -0
- package/cypress/pages/components/essayResponseCommonComponents.js +3 -0
- package/cypress/pages/components/figOverImageCanvasComponent.js +316 -7
- package/cypress/pages/components/index.js +3 -1
- package/cypress/pages/components/opacityComponent.js +31 -4
- package/cypress/pages/components/specialAndCustomSpecialCharactersComponent.js +1 -0
- package/cypress/pages/components/specialCharactersFlyoutComponent.js +1 -0
- package/cypress/pages/drawingResponsePage.js +33 -138
- package/cypress/pages/essayResponsePage.js +612 -26
- package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +48 -7
- package/cypress/pages/fillInTheGapsOverImageTextPage.js +267 -13
- package/package.json +1 -1
@@ -1,8 +1,9 @@
|
|
1
1
|
import { equationEditorCategoriesAndSymbols } from "../fixtures/equationEditorCategoriesAndSymbols ";
|
2
|
-
import { questionInstructionsComponent, scoringSectionBaseEditTab, createQuestionBasePage, additionalSettingsPanel, autoScoredScoringPreviewTab, commonComponents } from "./components";
|
2
|
+
import { questionInstructionsComponent, scoringSectionBaseEditTab, createQuestionBasePage, additionalSettingsPanel, autoScoredScoringPreviewTab, commonComponents, createCustomCategoryFlyout } from "./components";
|
3
3
|
import { equationEditorFlyout } from "./components/equationEditorFlyout";
|
4
4
|
import { essayResponseCommonComponents } from "./components/essayResponseCommonComponents";
|
5
5
|
import { specialOrMathCharacters } from "../fixtures/specialAndMathCharacters";
|
6
|
+
import utilities from "../support/helpers/utilities";
|
6
7
|
const css = Cypress.env('css');
|
7
8
|
|
8
9
|
let originalText;
|
@@ -23,6 +24,15 @@ const selectors = {
|
|
23
24
|
allowSubmissionOverWordLimitCheckbox: () => cy.get('[data-ngie-testid="allow-submission-over-word-limit-checkbox"] input'),
|
24
25
|
showWordCountLabel: () => cy.get('[data-ngie-testid="show-word-count-checkbox"] .MuiFormControlLabel-label'),
|
25
26
|
showWordCountCheckbox: () => cy.get('[data-ngie-testid="show-word-count-checkbox"] input'),
|
27
|
+
|
28
|
+
//Table in preview tab
|
29
|
+
tableGrid: () => cy.get('tbody'),
|
30
|
+
tableRow: () => cy.get('tr'),
|
31
|
+
tableCell: () => cy.get('td'),
|
32
|
+
tableHeaderRow: () => cy.get('thead'),
|
33
|
+
tableHeaderCell: () => cy.get('th'),
|
34
|
+
|
35
|
+
///Old
|
26
36
|
//Customize Formatting Options
|
27
37
|
customizeFormattingOptionsAccordion: () => cy.get('.customize-formatting-option-wrapper .ngie-accordion-summary'),
|
28
38
|
customizeFormattingOptionsAccordionLabel: () => cy.get('.customize-formatting-options-label'),
|
@@ -48,33 +58,36 @@ const selectors = {
|
|
48
58
|
equationEditorSectionCategoriesEditIcon: () => cy.get('.edit-icon-button button'),
|
49
59
|
equationEditorSectionTickIcon: () => cy.get('.tick-icon-wrapper'),
|
50
60
|
selectACategoryErrorMessage: () => cy.get('[class*="ErrorBlock"]'),
|
51
|
-
createCustomCategoryButton: () => cy.get('.equation-editor-wrapper button'),
|
52
61
|
equationEditorSectionCategoryIcon: () => cy.get('.equation-editor-icon'),
|
53
62
|
equationEditorSectionDeleteCustomCategoryIcon: () => cy.get('.delete-button-icon button')
|
54
63
|
}
|
55
64
|
|
56
|
-
const tableDialogBox = { //TODO: Once redmine issue is fixed the selectors will get changed to this:
|
65
|
+
const tableDialogBox = { //TODO: Once redmine issue is fixed the selectors will get changed to this: editTableDialogBoxAddRowHeaderLabel: () => cy.get('.add-table-dialog .chk_box_add_header_row')
|
57
66
|
//Add table dialog box
|
58
|
-
addTableDialogBox: () => cy.get('
|
59
|
-
addTableDialogBoxTitle: () =>
|
60
|
-
|
61
|
-
addTableDialogBoxHighlightFirstColumnLabel: () => cy.get('
|
62
|
-
addTableDialogBoxAddHeaderRowCheckbox: () =>
|
63
|
-
addTableDialogBoxHighlightFirstColumnCheckbox: () =>
|
67
|
+
addTableDialogBox: () => cy.get('.cke_dialog_body'),
|
68
|
+
addTableDialogBoxTitle: () => cy.get('.cke_dialog_title'),
|
69
|
+
addTableDialogBoxAddRowHeaderLabel: () => cy.get('.chk_box_add_header_row label'),
|
70
|
+
addTableDialogBoxHighlightFirstColumnLabel: () => cy.get('[class="cke_dialog_ui_checkbox custom-table-title-casing"] label'),
|
71
|
+
addTableDialogBoxAddHeaderRowCheckbox: () => cy.get('.chk_box_add_header_row input').eq(0),
|
72
|
+
addTableDialogBoxHighlightFirstColumnCheckbox: () => cy.get('[class="cke_dialog_ui_checkbox custom-table-title-casing"] input').eq(0),
|
64
73
|
addTableDialogBoxButtonAddTable: () => cy.get('a[title="Add Table"]'),
|
65
|
-
addTableDialogBoxButtonCancel: () =>
|
66
|
-
addTableDialogBoxColumnsLabel: () =>
|
67
|
-
addTableDialogBoxRowsLabel: () =>
|
68
|
-
addTableDialogBoxColumnsInputField: () =>
|
69
|
-
addTableDialogBoxRowsInputField: () =>
|
74
|
+
addTableDialogBoxButtonCancel: () => cy.get('a[class*="cancel-button"]'),
|
75
|
+
addTableDialogBoxColumnsLabel: () => cy.get('.cke_dialog_ui_labeled_label').eq(0),
|
76
|
+
addTableDialogBoxRowsLabel: () => cy.get('.cke_dialog_ui_labeled_label').eq(1),
|
77
|
+
addTableDialogBoxColumnsInputField: () => cy.get('input[class="cke_dialog_ui_input_text"][type="number"]').eq(0),
|
78
|
+
addTableDialogBoxRowsInputField: () => cy.get('input[class="cke_dialog_ui_input_text"][type="number"]').eq(1),
|
79
|
+
addTableColumnsInputFieldIncrementButton: () => cy.get('#incrementColButton'),
|
80
|
+
addTableColumnsInputFieldDecrementButton: () => cy.get('#decrementColButton'),
|
81
|
+
addTableRowsInputFieldIncrementButton: () => cy.get('#incrementRowButton'),
|
82
|
+
addTableRowsInputFieldDecrementButton: () => cy.get('#decrementRowButton'),
|
70
83
|
previewInputFieldTable: () => cy.get('.ngcke_custom_table'),
|
71
|
-
previewTabToolbarDialogboxIconClose: () => essayResponsePage.addTableDialogBox().find('a[title="Close"]'),
|
72
84
|
//Edit Table Dialog Box
|
73
|
-
editTableDialogBox: () => cy.get('
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
85
|
+
editTableDialogBox: () => cy.get('.cke_dialog_body').eq(1),
|
86
|
+
editTableDialogBoxTitle: () => cy.get('.cke_dialog_title').eq(1),
|
87
|
+
editTableDialogBoxAddRowHeaderLabel: () => cy.get('.chk_box_add_header_row label').eq(1),
|
88
|
+
editTableDialogBoxHighlightFirstColumnLabel: () => cy.get('.chk_box_highlight_first_column label'),
|
89
|
+
editTableDialogBoxAddRowHeaderCheckbox: () => cy.get('.chk_box_add_header_row input').eq(1),
|
90
|
+
editTableDialogBoxHighlightFirstColumnCheckbox: () => cy.get('.chk_box_highlight_first_column input'),
|
78
91
|
editTableDialogBoxColumnsLabel: () => essayResponsePage.editTableDialogBox().find('.cke_dialog_ui_labeled_label').eq(0),
|
79
92
|
editTableDialogBoxRowsLabel: () => essayResponsePage.editTableDialogBox().find('.cke_dialog_ui_labeled_label').eq(1),
|
80
93
|
editTableDialogBoxInsertBeforeButton: () => cy.get('[title="Insert Before"]'),
|
@@ -115,6 +128,575 @@ const steps = {
|
|
115
128
|
...scoringSectionBaseEditTab.steps,
|
116
129
|
...additionalSettingsPanel.steps,
|
117
130
|
...essayResponseCommonComponents.steps,
|
131
|
+
|
132
|
+
/**
|
133
|
+
* Verify newly added custom category container is displayed
|
134
|
+
* @param {string} customCategoryName Custom category name
|
135
|
+
* @param {string} customCategoryIcon Custom category icon
|
136
|
+
*/
|
137
|
+
verifyAddedCustomCategoryContainerIsDisplayed: (customCategoryName, customCategoryIcon) => {
|
138
|
+
essayResponsePage.equationEditorSectionCategories()
|
139
|
+
.last()
|
140
|
+
.should('have.attr', 'aria-label', `${customCategoryName}`)
|
141
|
+
.within(() => {
|
142
|
+
utilities.verifyInnerText(essayResponsePage.equationEditorSectionCategoryLabel(), `${customCategoryName}`);
|
143
|
+
utilities.verifyInnerText(essayResponsePage.equationEditorSectionCategoryIcon(), `${customCategoryIcon}`);
|
144
|
+
});
|
145
|
+
utilities.verifyElementVisibilityState(essayResponsePage.equationEditorSectionCategories().last(), 'visible');
|
146
|
+
},
|
147
|
+
|
148
|
+
createCustomCategoryWithMultipleCategoryCharacters: () => {
|
149
|
+
cy.log('Creating a custom category by selecting \'Keypad\' category, partially selecting \'Basic\' and \'Greek\' categories')
|
150
|
+
createCustomCategoryFlyout.steps.openCreateCustomCategoryFlyout();
|
151
|
+
createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['keypad'].displayName}`);
|
152
|
+
createCustomCategoryFlyout.steps.verifyPartiallyCheckedStateOfCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['basic'].displayName}`);
|
153
|
+
createCustomCategoryFlyout.steps.expandCategoryAccordion(`${equationEditorCategoriesAndSymbols['greek'].displayName}`);
|
154
|
+
createCustomCategoryFlyout.steps.selectASymbolInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols.greek.symbols.gamma.ariaLabel}`);
|
155
|
+
createCustomCategoryFlyout.steps.selectASymbolInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols.greek.symbols.delta.ariaLabel}`);
|
156
|
+
createCustomCategoryFlyout.steps.addInputToCustomCategoryNameInputField('Custom category with name.');
|
157
|
+
createCustomCategoryFlyout.steps.saveCustomCategory();
|
158
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
159
|
+
},
|
160
|
+
|
161
|
+
/**
|
162
|
+
* @description verify added custom category container is displayed with edit and delete button
|
163
|
+
* @param {string} customCategoryName Name of custom category
|
164
|
+
*/
|
165
|
+
verifyAddedCustomCategoryContainerEditAndDeleteButtonDisplayed: (customCategoryName) => {
|
166
|
+
essayResponsePage.equationEditorSectionCategories()
|
167
|
+
.contains(`${customCategoryName}`)
|
168
|
+
.parents('[id*="DraggableItem"]')
|
169
|
+
.within(() => {
|
170
|
+
utilities.verifyElementVisibilityState(essayResponsePage.equationEditorSectionCategoriesEditIcon, ('visible'));
|
171
|
+
utilities.verifyElementVisibilityState(essayResponsePage.equationEditorSectionDeleteCustomCategoryIcon, ('visible'));
|
172
|
+
});
|
173
|
+
},
|
174
|
+
|
175
|
+
/**
|
176
|
+
* @description deselect category in equation editor section in edit tab
|
177
|
+
* @param {string} categoryName Name of category
|
178
|
+
*/
|
179
|
+
deselectCategoryInEquationEditorSectionEditTab: (categoryName) => {
|
180
|
+
essayResponsePage.equationEditorSectionCategories()
|
181
|
+
.contains(`${categoryName}`)
|
182
|
+
.click();
|
183
|
+
},
|
184
|
+
|
185
|
+
/**
|
186
|
+
* @description delete category in equation editor section in edit tab
|
187
|
+
* @param {string} categoryName Name of category
|
188
|
+
*/
|
189
|
+
deleteCustomCategoryInEquationEditorSectionEditTab: (categoryName) => {
|
190
|
+
essayResponsePage.equationEditorSectionCategories()
|
191
|
+
.contains(`${categoryName}`)
|
192
|
+
.parents('[id*="DraggableItem"]')
|
193
|
+
.within(() => {
|
194
|
+
essayResponsePage.equationEditorSectionDeleteCustomCategoryIcon()
|
195
|
+
.click();
|
196
|
+
});
|
197
|
+
utilities.verifyElementVisibilityState(essayResponsePage.equationEditorSectionCategories().contains(`${categoryName}`), 'notExist');
|
198
|
+
},
|
199
|
+
|
200
|
+
/**
|
201
|
+
* @description edit category in equation editor section in edit tab
|
202
|
+
* @param {string} categoryName Name of category
|
203
|
+
*/
|
204
|
+
editCategoryInEquationEditorSectionEditTab: (categoryName) => {
|
205
|
+
essayResponsePage.equationEditorSectionCategories()
|
206
|
+
.contains(`${categoryName}`)
|
207
|
+
.parents('[id*="DraggableItem"]')
|
208
|
+
.within(() => {
|
209
|
+
essayResponsePage.equationEditorSectionCategoriesEditIcon()
|
210
|
+
.click();
|
211
|
+
});
|
212
|
+
},
|
213
|
+
|
214
|
+
verifyCSSOfSelectedSymbols: () => {
|
215
|
+
utilities.getNthElement(createCustomCategoryFlyout.selectedSymbols(), 0)
|
216
|
+
.within(() => {
|
217
|
+
utilities.verifyCSS(essayResponsePage.equationEditorSectionTickIcon().find('[data-name*="Icon"]'), {
|
218
|
+
'fill': css.color.activeButtons
|
219
|
+
});
|
220
|
+
utilities.verifyCSS(essayResponsePage.equationEditorSectionTickIcon().find('path'), {
|
221
|
+
'fill': css.color.activeButtons
|
222
|
+
});
|
223
|
+
});
|
224
|
+
},
|
225
|
+
|
226
|
+
/**
|
227
|
+
* @description verify the value of columns input field in table flyout
|
228
|
+
* @param {number} numberOfColumns
|
229
|
+
*/
|
230
|
+
verifyTableFlyoutColumnsInputFieldValue: (numberOfColumns) => {
|
231
|
+
essayResponsePage.addTableDialogBoxColumnsInputField()
|
232
|
+
.should('have.value', `${numberOfColumns}`)
|
233
|
+
},
|
234
|
+
|
235
|
+
/**
|
236
|
+
* @description edit columns input field in table flyout
|
237
|
+
* @param {number} numberOfColumns
|
238
|
+
*/
|
239
|
+
editTableFlyoutColumnsInputField: (numberOfColumns) => {
|
240
|
+
essayResponsePage.addTableDialogBoxColumnsInputField()
|
241
|
+
.clear()
|
242
|
+
.type(`${numberOfColumns}`)
|
243
|
+
.should('have.value', `${numberOfColumns}`);
|
244
|
+
},
|
245
|
+
|
246
|
+
/**
|
247
|
+
* @description increment columns input field in table flyout
|
248
|
+
* @param {number} numberOfIncrement The number by which columns input field should be incremented
|
249
|
+
*/
|
250
|
+
incrementTableFlyoutColumnsInputField: (numberOfIncrement) => {
|
251
|
+
for (let i = 0; i < numberOfIncrement; i++) {
|
252
|
+
essayResponsePage.addTableColumnsInputFieldIncrementButton()
|
253
|
+
.click();
|
254
|
+
}
|
255
|
+
},
|
256
|
+
|
257
|
+
/**
|
258
|
+
* @description decrement columns input field in table flyout
|
259
|
+
* @param {number} numberOfDecrement The number by which columns input field should be decremented
|
260
|
+
*/
|
261
|
+
decrementTableFlyoutColumnsInputField: (numberOfDecrement) => {
|
262
|
+
for (let i = 0; i < numberOfDecrement; i++) {
|
263
|
+
essayResponsePage.addTableColumnsInputFieldDecrementButton()
|
264
|
+
.click();
|
265
|
+
}
|
266
|
+
},
|
267
|
+
|
268
|
+
/**
|
269
|
+
* @description verify the value of rows input field in table flyout
|
270
|
+
* @param {number} numberOfRows
|
271
|
+
*/
|
272
|
+
verifyTableFlyoutRowsInputFieldValue: (numberOfRows) => {
|
273
|
+
essayResponsePage.addTableDialogBoxRowsInputField()
|
274
|
+
.should('have.value', `${numberOfRows}`)
|
275
|
+
},
|
276
|
+
|
277
|
+
/**
|
278
|
+
* @description edit rows input field in table flyout
|
279
|
+
* @param {number} numberOfRows
|
280
|
+
*/
|
281
|
+
editTableFlyoutRowsInputField: (numberOfRows) => {
|
282
|
+
essayResponsePage.addTableDialogBoxRowsInputField()
|
283
|
+
.clear()
|
284
|
+
.type(`${numberOfRows}`)
|
285
|
+
.should('have.value', `${numberOfRows}`);
|
286
|
+
},
|
287
|
+
|
288
|
+
/**
|
289
|
+
* @description increment rows input field in table flyout
|
290
|
+
* @param {number} numberOfIncrement The number by which rows input field should be incremented
|
291
|
+
*/
|
292
|
+
incrementTableFlyoutRowsInputField: (numberOfIncrement) => {
|
293
|
+
for (let i = 0; i < numberOfIncrement; i++) {
|
294
|
+
essayResponsePage.addTableRowsInputFieldIncrementButton()
|
295
|
+
.click();
|
296
|
+
}
|
297
|
+
},
|
298
|
+
|
299
|
+
/**
|
300
|
+
* @description decrement rows input field in table flyout
|
301
|
+
* @param {number} numberOfDecrement The number by which rows input field should be decremented
|
302
|
+
*/
|
303
|
+
decrementTableFlyoutRowsInputField: (numberOfDecrement) => {
|
304
|
+
for (let i = 0; i < numberOfDecrement; i++) {
|
305
|
+
essayResponsePage.addTableRowsInputFieldDecrementButton()
|
306
|
+
.click();
|
307
|
+
}
|
308
|
+
},
|
309
|
+
|
310
|
+
verifyMinimumAndMaximumValueOfTableFlyoutColumnsAndRowsInputField: () => {
|
311
|
+
essayResponsePage.addTableDialogBoxColumnsInputField()
|
312
|
+
.should('have.attr', 'min', '1')
|
313
|
+
.and('have.attr', 'max', '999');
|
314
|
+
essayResponsePage.addTableDialogBoxRowsInputField()
|
315
|
+
.should('have.attr', 'min', '1')
|
316
|
+
.and('have.attr', 'max', '999');
|
317
|
+
},
|
318
|
+
|
319
|
+
verifyUncheckedStateOfAddRowHeaderHighlightFirstColumnCheckbox: () => {
|
320
|
+
essayResponsePage.addTableDialogBoxAddHeaderRowCheckbox()
|
321
|
+
.should('not.be.checked');
|
322
|
+
essayResponsePage.addTableDialogBoxHighlightFirstColumnCheckbox()
|
323
|
+
.should('not.be.checked');
|
324
|
+
},
|
325
|
+
|
326
|
+
clickOnTableFlyoutCancelButton: () => {
|
327
|
+
essayResponsePage.addTableDialogBoxButtonCancel()
|
328
|
+
.click();
|
329
|
+
},
|
330
|
+
|
331
|
+
addTable: () => {
|
332
|
+
essayResponsePage.addTableDialogBoxButtonAddTable()
|
333
|
+
.click();
|
334
|
+
},
|
335
|
+
|
336
|
+
checkAddRowHeaderCheckbox: () => {
|
337
|
+
essayResponsePage.addTableDialogBoxAddHeaderRowCheckbox()
|
338
|
+
.click({ force: true });
|
339
|
+
},
|
340
|
+
|
341
|
+
clickOnEditTableAddRowHeaderCheckbox: () => {
|
342
|
+
essayResponsePage.editTableDialogBoxAddRowHeaderCheckbox()
|
343
|
+
.click({ force: true });
|
344
|
+
},
|
345
|
+
|
346
|
+
checkHighlightFirstColumnCheckbox: () => {
|
347
|
+
essayResponsePage.addTableDialogBoxHighlightFirstColumnCheckbox()
|
348
|
+
.click({ force: true });
|
349
|
+
},
|
350
|
+
|
351
|
+
clickOnEditTableHighlightFirstColumnCheckbox: () => {
|
352
|
+
essayResponsePage.editTableDialogBoxHighlightFirstColumnCheckbox()
|
353
|
+
.click({ force: true });
|
354
|
+
},
|
355
|
+
|
356
|
+
/**
|
357
|
+
* Verify the table properties of the added table in preview tab
|
358
|
+
* @param {number} numberOfRows number of rows in the added table
|
359
|
+
* @param {number} numberOfStandardCells number of standard cells in the added table
|
360
|
+
* @param {number} numberOfHeaderCells number of header cells in the added table
|
361
|
+
*/
|
362
|
+
verifyTableProperties: (numberOfRows, numberOfStandardCells, numberOfHeaderCells=null) => {
|
363
|
+
essayResponsePage.previewInputFieldTable()
|
364
|
+
.within(() => {
|
365
|
+
utilities.verifyElementCount(essayResponsePage.tableRow(), numberOfRows);
|
366
|
+
utilities.verifyElementCount(essayResponsePage.tableCell(), numberOfStandardCells);
|
367
|
+
if (numberOfHeaderCells) {
|
368
|
+
utilities.verifyElementCount(essayResponsePage.tableHeaderCell(), numberOfHeaderCells);
|
369
|
+
}
|
370
|
+
});
|
371
|
+
},
|
372
|
+
|
373
|
+
/**
|
374
|
+
* Verify the count of header cell in table header row
|
375
|
+
* @param {number} numberOfHeaderRowCells number of header cells in table header row
|
376
|
+
*/
|
377
|
+
verifyTableHeaderRowCellCount: (numberOfHeaderRowCells) => {
|
378
|
+
essayResponsePage.previewInputFieldTable()
|
379
|
+
.within(() => {
|
380
|
+
essayResponsePage.tableHeaderRow()
|
381
|
+
.within(() => {
|
382
|
+
utilities.verifyElementCount(essayResponsePage.tableHeaderCell(), numberOfHeaderRowCells);
|
383
|
+
});
|
384
|
+
});
|
385
|
+
},
|
386
|
+
|
387
|
+
/**
|
388
|
+
* Verify the count of header cells in table row
|
389
|
+
* @param {number} numberOfHeaderCells number of header cells in table row
|
390
|
+
* @param {number} rowIndex index of table row
|
391
|
+
*/
|
392
|
+
verifyTableRowHeaderCellCount: (rowIndex, numberOfHeaderCells) => {
|
393
|
+
essayResponsePage.previewInputFieldTable()
|
394
|
+
.within(() => {
|
395
|
+
utilities.getNthElement(essayResponsePage.tableRow(), rowIndex)
|
396
|
+
.within(() => {
|
397
|
+
utilities.verifyElementCount(essayResponsePage.tableHeaderCell(), numberOfHeaderCells);
|
398
|
+
});
|
399
|
+
});
|
400
|
+
},
|
401
|
+
|
402
|
+
/**
|
403
|
+
* Verify the count of standard cells in table row
|
404
|
+
* @param {number} numberOfStandardCells number of standard cells in table row
|
405
|
+
* @param {number} rowIndex index of table row
|
406
|
+
*/
|
407
|
+
verifyTableRowStandardCellCount: (rowIndex, numberOfStandardCells) => {
|
408
|
+
essayResponsePage.previewInputFieldTable()
|
409
|
+
.within(() => {
|
410
|
+
utilities.getNthElement(essayResponsePage.tableRow(), rowIndex)
|
411
|
+
.within(() => {
|
412
|
+
utilities.verifyElementCount(essayResponsePage.tableCell(), numberOfStandardCells);
|
413
|
+
});
|
414
|
+
});
|
415
|
+
},
|
416
|
+
|
417
|
+
/**
|
418
|
+
* @description verify the count of rows in table
|
419
|
+
* @param {number} numberOfRows
|
420
|
+
*/
|
421
|
+
verifyTableRowCount: (numberOfRows) => {
|
422
|
+
essayResponsePage.previewInputFieldTable()
|
423
|
+
.within(() => {
|
424
|
+
utilities.verifyElementCount(essayResponsePage.tableRow(), numberOfRows);
|
425
|
+
});
|
426
|
+
},
|
427
|
+
|
428
|
+
/**
|
429
|
+
* Verify first column is highlighted in the table
|
430
|
+
* @param {number} numberOfTableCellsPerRow number of normal table cells per row
|
431
|
+
*/
|
432
|
+
verifyFirstColumnsIsHighlighted: (numberOfTableCellsPerRow) => {
|
433
|
+
essayResponsePage.previewInputFieldTable()
|
434
|
+
.within(() => {
|
435
|
+
essayResponsePage.tableGrid()
|
436
|
+
.within(() => {
|
437
|
+
essayResponsePage.tableRow()
|
438
|
+
.each(($element) => {
|
439
|
+
cy.wrap($element)
|
440
|
+
.within(() => {
|
441
|
+
utilities.verifyElementCount(essayResponsePage.tableHeaderCell(), 1);
|
442
|
+
utilities.verifyElementCount(essayResponsePage.tableCell(), numberOfTableCellsPerRow);
|
443
|
+
});
|
444
|
+
});
|
445
|
+
});
|
446
|
+
});
|
447
|
+
},
|
448
|
+
|
449
|
+
verifyTableHeaderCellsAreHighlighted: () => {
|
450
|
+
essayResponsePage.previewInputFieldTable()
|
451
|
+
.within(() => {
|
452
|
+
essayResponsePage.tableHeaderCell()
|
453
|
+
.each(($element) => {
|
454
|
+
expect($element).to.have.css('background-color', css.color.highlightedTableCell);
|
455
|
+
});
|
456
|
+
});
|
457
|
+
},
|
458
|
+
|
459
|
+
verifyTableNormalCellsAreNotHighlighted: () => {
|
460
|
+
essayResponsePage.previewInputFieldTable()
|
461
|
+
.within(() => {
|
462
|
+
essayResponsePage.tableCell()
|
463
|
+
.each(($element) => {
|
464
|
+
expect($element).to.have.css('background-color', css.color.transparent); //To check that td cells are standard cells
|
465
|
+
});
|
466
|
+
});
|
467
|
+
},
|
468
|
+
|
469
|
+
/**
|
470
|
+
* Add input to table header cell
|
471
|
+
* @param {number} headerCellIndex index of header cell in the table
|
472
|
+
* @param {string} cellInput Input to be given in header cell
|
473
|
+
*/
|
474
|
+
addInputToTableHeaderCell: (headerCellIndex, cellInput) => {
|
475
|
+
utilities.getNthElement(essayResponsePage.tableHeaderCell(), headerCellIndex)
|
476
|
+
.type(`${cellInput}`);
|
477
|
+
},
|
478
|
+
|
479
|
+
/**
|
480
|
+
* Verify input added in table header cell
|
481
|
+
* @param {number} headerCellIndex index of header cell in the table
|
482
|
+
* @param {string} cellContent Input in header cell
|
483
|
+
*/
|
484
|
+
verifyContentOfTableHeaderCell: (headerCellIndex, cellContent) => {
|
485
|
+
utilities.verifyInnerText(utilities.getNthElement(essayResponsePage.tableHeaderCell(), headerCellIndex), `${cellContent}`);
|
486
|
+
},
|
487
|
+
|
488
|
+
/**
|
489
|
+
* Add input to normal table cell
|
490
|
+
* @param {number} headerCellIndex index of normal cell in the table
|
491
|
+
* @param {string} cellInput Input to be given in normal table cell
|
492
|
+
*/
|
493
|
+
addInputToTableCell: (cellIndex, cellInput) => {
|
494
|
+
utilities.getNthElement(essayResponsePage.tableCell(), cellIndex)
|
495
|
+
.type(`${cellInput}`);
|
496
|
+
},
|
497
|
+
|
498
|
+
/**
|
499
|
+
* Verify input added in table standard cell
|
500
|
+
* @param {number} cellIndex index of standard cell in the table
|
501
|
+
* @param {string} cellContent Input in standard cell
|
502
|
+
*/
|
503
|
+
verifyContentOfTableStandardCell: (cellIndex, cellContent) => {
|
504
|
+
utilities.verifyInnerText(utilities.getNthElement(essayResponsePage.tableCell(), cellIndex), `${cellContent}`);
|
505
|
+
},
|
506
|
+
|
507
|
+
compareColumnWidthsWhenInputIsAddedInACell: () => {
|
508
|
+
let cellWidth
|
509
|
+
essayResponsePage.previewInputFieldTable()
|
510
|
+
.within(() => {
|
511
|
+
utilities.getNthElement(essayResponsePage.tableCell(), 0)
|
512
|
+
.then(($originalCellWidth) => {
|
513
|
+
cellWidth = $originalCellWidth.width(); //Storing original column width
|
514
|
+
});
|
515
|
+
essayResponsePage.steps.addInputToTableCell(0, 'lorem');
|
516
|
+
utilities.getNthElement(essayResponsePage.tableCell(), 0)
|
517
|
+
.then(($modifiedCellWidth) => {
|
518
|
+
let modifiedCellWidth = $modifiedCellWidth.width();
|
519
|
+
expect(modifiedCellWidth).to.be.gt(cellWidth); //Comparing modified and original column width
|
520
|
+
});
|
521
|
+
utilities.getNthElement(essayResponsePage.tableCell(), 2)
|
522
|
+
.then(($modifiedCellWidth) => {
|
523
|
+
let modifiedCellWidth = $modifiedCellWidth.width();
|
524
|
+
expect(modifiedCellWidth).to.be.lt(cellWidth); //Comparing new and original width of other columns
|
525
|
+
});
|
526
|
+
});
|
527
|
+
},
|
528
|
+
|
529
|
+
compareColumnWidthsWhenInputIsRemovedInACell: () => {
|
530
|
+
let cellWidth
|
531
|
+
essayResponsePage.previewInputFieldTable()
|
532
|
+
.within(() => {
|
533
|
+
utilities.getNthElement(essayResponsePage.tableCell(), 0)
|
534
|
+
.then(($originalCellWidth) => {
|
535
|
+
cellWidth = $originalCellWidth.width();
|
536
|
+
});
|
537
|
+
essayResponsePage.steps.addInputToTableCell(0, '{backspace}{backspace}{backspace}{backspace}{backspace}')
|
538
|
+
utilities.getNthElement(essayResponsePage.tableCell(), 0)
|
539
|
+
.then(($modifiedCellWidth) => {
|
540
|
+
let modifiedCellWidth = $modifiedCellWidth.width();
|
541
|
+
expect(modifiedCellWidth).to.be.lt(cellWidth);
|
542
|
+
cellWidth = modifiedCellWidth;
|
543
|
+
});
|
544
|
+
utilities.getNthElement(essayResponsePage.tableCell(), 2)
|
545
|
+
.then(($modifiedCellWidth) => {
|
546
|
+
let modifiedCellWidth = $modifiedCellWidth.width();
|
547
|
+
expect(modifiedCellWidth).to.be.eq(cellWidth); //Cell width increases again to match the original cell width
|
548
|
+
});
|
549
|
+
});
|
550
|
+
},
|
551
|
+
|
552
|
+
compareRowHeightWhenMultilineInputIsGivenInACell: () => {
|
553
|
+
let cellHeight;
|
554
|
+
essayResponsePage.previewInputFieldTable()
|
555
|
+
.within(() => {
|
556
|
+
utilities.getNthElement(essayResponsePage.tableCell(), 0)
|
557
|
+
.then(($originalCellHeight) => {
|
558
|
+
cellHeight = $originalCellHeight.height();
|
559
|
+
});
|
560
|
+
essayResponsePage.steps.addInputToTableCell(0, 'lorem{Enter}ipsum');
|
561
|
+
utilities.getNthElement(essayResponsePage.tableCell(), 0)
|
562
|
+
.then(($modifiedCellHeight) => {
|
563
|
+
let modifiedCellHeight = $modifiedCellHeight.height();
|
564
|
+
expect(modifiedCellHeight).to.be.gt(cellHeight);
|
565
|
+
});
|
566
|
+
});
|
567
|
+
},
|
568
|
+
|
569
|
+
/**
|
570
|
+
* Right click on header cell to open edit table popup
|
571
|
+
* @param {number} headerCellIndex index of header cell
|
572
|
+
*/
|
573
|
+
openEditTablePopupThroughHeaderCell: (headerCellIndex) => {
|
574
|
+
essayResponsePage.previewInputFieldTable()
|
575
|
+
.within(() => {
|
576
|
+
utilities.getNthElement(essayResponsePage.tableHeaderCell(), headerCellIndex)
|
577
|
+
.rightclick();
|
578
|
+
});
|
579
|
+
utilities.verifyElementVisibilityState(essayResponsePage.editTableDialogBox(), 'visible');
|
580
|
+
},
|
581
|
+
|
582
|
+
/**
|
583
|
+
* Right click on normal cell to open edit table popup
|
584
|
+
* @param {number} cellIndex index of cell
|
585
|
+
*/
|
586
|
+
openEditTablePopupThroughNormalCell: (cellIndex) => {
|
587
|
+
essayResponsePage.previewInputFieldTable()
|
588
|
+
.within(() => {
|
589
|
+
utilities.getNthElement(essayResponsePage.tableCell(), cellIndex)
|
590
|
+
.rightclick();
|
591
|
+
});
|
592
|
+
utilities.verifyElementVisibilityState(essayResponsePage.editTableDialogBox(), 'visible');
|
593
|
+
},
|
594
|
+
|
595
|
+
verifyCheckedStateOfEditTableAddRowHeaderCheckbox: () => {
|
596
|
+
essayResponsePage.editTableDialogBoxAddRowHeaderCheckbox()
|
597
|
+
.should('be.checked');
|
598
|
+
},
|
599
|
+
|
600
|
+
verifyUncheckedStateOfEditTableHighlightFirstColumnCheckbox: () => {
|
601
|
+
essayResponsePage.editTableDialogBoxHighlightFirstColumnCheckbox()
|
602
|
+
.should('not.be.checked');
|
603
|
+
},
|
604
|
+
|
605
|
+
verifyUncheckedStateOfEditTableAddRowHeaderCheckbox: () => {
|
606
|
+
essayResponsePage.editTableDialogBoxAddRowHeaderCheckbox()
|
607
|
+
.should('not.be.checked');
|
608
|
+
},
|
609
|
+
|
610
|
+
clickOnEditTableFlyoutCancelButton: () => {
|
611
|
+
essayResponsePage.editTableDialogBoxButtonCancel()
|
612
|
+
.click();
|
613
|
+
},
|
614
|
+
|
615
|
+
clickOnEditTableFlyoutSaveButton: () => {
|
616
|
+
essayResponsePage.editTableDialogBoxButtonSave()
|
617
|
+
.click();
|
618
|
+
},
|
619
|
+
|
620
|
+
clickOnEditTableFlyoutDeleteButton: () => {
|
621
|
+
essayResponsePage.editTableDialogBoxButtonDelete()
|
622
|
+
.click();
|
623
|
+
},
|
624
|
+
|
625
|
+
clickOnEditTableInsertBeforeButton: () => {
|
626
|
+
essayResponsePage.editTableDialogBoxInsertBeforeButton()
|
627
|
+
.click();
|
628
|
+
},
|
629
|
+
|
630
|
+
clickOnEditTableInsertAfterButton: () => {
|
631
|
+
essayResponsePage.editTableDialogBoxInsertAfterButton()
|
632
|
+
.click();
|
633
|
+
},
|
634
|
+
|
635
|
+
clickOnEditTableDeleteColumnButton: () => {
|
636
|
+
essayResponsePage.editTableDialogBoxDeleteColumnButton()
|
637
|
+
.click();
|
638
|
+
},
|
639
|
+
|
640
|
+
clickOnEditTableInsertAboveButton: () => {
|
641
|
+
essayResponsePage.editTableDialogBoxInsertAboveButton()
|
642
|
+
.click();
|
643
|
+
},
|
644
|
+
|
645
|
+
clickOnEditTableInsertBelowButton: () => {
|
646
|
+
essayResponsePage.editTableDialogBoxInsertBelowButton()
|
647
|
+
.click();
|
648
|
+
},
|
649
|
+
|
650
|
+
clickOnEditTableDeleteRowButton: () => {
|
651
|
+
essayResponsePage.editTableDialogBoxDeleteRowButton()
|
652
|
+
.click();
|
653
|
+
},
|
654
|
+
|
655
|
+
compareColumnWidthWhenNewColumnIsAddedToTheTable: () => {
|
656
|
+
let cellWidth;
|
657
|
+
essayResponsePage.previewInputFieldTable()
|
658
|
+
.within(() => {
|
659
|
+
utilities.getNthElement(essayResponsePage.tableHeaderCell(), 1)
|
660
|
+
.then(($originalCellWidth) => {
|
661
|
+
cellWidth = $originalCellWidth.width(); //Storing original column width
|
662
|
+
});
|
663
|
+
});
|
664
|
+
cy.log('Right click in the required cell to open edit table flyout and then click on Insert After button.');
|
665
|
+
essayResponsePage.steps.openEditTablePopupThroughHeaderCell(1);
|
666
|
+
essayResponsePage.steps.clickOnEditTableInsertAfterButton();
|
667
|
+
essayResponsePage.previewInputFieldTable()
|
668
|
+
.within(() => {
|
669
|
+
utilities.getNthElement(essayResponsePage.tableHeaderCell(), 1)
|
670
|
+
.then(($modifiedCellWidth) => {
|
671
|
+
let modifiedCellWidth = $modifiedCellWidth.width();
|
672
|
+
expect(modifiedCellWidth).to.be.lt(cellWidth); //Comparing modified and original column width
|
673
|
+
});
|
674
|
+
});
|
675
|
+
},
|
676
|
+
|
677
|
+
compareColumnWidthWhenColumnIsDeletedFromTheTable: () => {
|
678
|
+
let cellWidth;
|
679
|
+
essayResponsePage.previewInputFieldTable()
|
680
|
+
.within(() => {
|
681
|
+
utilities.getNthElement(essayResponsePage.tableHeaderCell(), 0)
|
682
|
+
.then(($originalCellWidth) => {
|
683
|
+
cellWidth = $originalCellWidth.width(); //Storing original column width
|
684
|
+
});
|
685
|
+
});
|
686
|
+
cy.log('Right click in the required cell to open edit table flyout and then click on Delete Column button.');
|
687
|
+
essayResponsePage.steps.openEditTablePopupThroughNormalCell(0);
|
688
|
+
essayResponsePage.steps.clickOnEditTableDeleteColumnButton();
|
689
|
+
essayResponsePage.previewInputFieldTable()
|
690
|
+
.within(() => {
|
691
|
+
utilities.getNthElement(essayResponsePage.tableHeaderCell(), 0)
|
692
|
+
.then(($modifiedCellWidth) => {
|
693
|
+
let modifiedCellWidth = $modifiedCellWidth.width();
|
694
|
+
expect(modifiedCellWidth).to.be.gt(cellWidth); //Comparing modified and original column width
|
695
|
+
});
|
696
|
+
});
|
697
|
+
},
|
698
|
+
|
699
|
+
///Old
|
118
700
|
expandCustomizeFormattingOptionsAccordion: () => {
|
119
701
|
essayResponsePage.customizeFormattingOptionsAccordion()
|
120
702
|
.click()
|
@@ -132,7 +714,8 @@ const steps = {
|
|
132
714
|
selectCustomizedFormattingOption: (formattingOptionArray) => {
|
133
715
|
formattingOptionArray.forEach((formattingOption) => {
|
134
716
|
essayResponsePage.customizeFormattingOptionsTiles(formattingOption)
|
135
|
-
.click()
|
717
|
+
.click();
|
718
|
+
essayResponsePage.customizeFormattingOptionsTiles(formattingOption)
|
136
719
|
.should('have.attr', 'data-aria-pressed', 'true');
|
137
720
|
});
|
138
721
|
},
|
@@ -191,13 +774,16 @@ const tests = {
|
|
191
774
|
...scoringSectionBaseEditTab.tests,
|
192
775
|
...autoScoredScoringPreviewTab.tests,
|
193
776
|
...commonComponents.tests,
|
777
|
+
|
778
|
+
/**
|
779
|
+
* insert equation and verify input field content and word count
|
780
|
+
* @param {string} expectedOutput equation text
|
781
|
+
* @param {string} wordCount word limit as set in the set limit section
|
782
|
+
*/
|
194
783
|
insertEquationAndVerifyInputFieldContentsAndWordCount: (expectedOutput, wordCount) => {
|
195
784
|
it(`On clicking the Ok button the symbols/equation entered should be displayed in the preview tab input field and the Word count should increase to ${wordCount}`, () => {
|
196
|
-
equationEditorFlyout.
|
197
|
-
|
198
|
-
essayResponsePage.responseField()
|
199
|
-
.find('.cke_widget_element')
|
200
|
-
.should('have.text', `${expectedOutput}`);
|
785
|
+
equationEditorFlyout.steps.clickOnOkButton()
|
786
|
+
utilities.verifyTextContent(essayResponsePage.responseField().find('.ngie_latex'), `${expectedOutput}`);
|
201
787
|
essayResponsePage.steps.verifyResponseFieldWordCount(wordCount);
|
202
788
|
});
|
203
789
|
},
|