@syncfusion/ej2-base 20.1.56 → 20.1.58-106983
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/.eslintrc.json +16 -1
- package/CHANGELOG.md +108 -4
- package/{README.md → ReadMe.md} +5 -6
- package/bin/syncfusion-license.js +2 -0
- package/dist/ej2-base.min.js +1 -0
- package/dist/ej2-base.umd.min.js +1 -10
- package/dist/ej2-base.umd.min.js.map +1 -1
- package/dist/es6/ej2-base.es2015.js +671 -315
- package/dist/es6/ej2-base.es2015.js.map +1 -1
- package/dist/es6/ej2-base.es5.js +448 -233
- package/dist/es6/ej2-base.es5.js.map +1 -1
- package/dist/global/ej2-base.min.js +1 -10
- package/dist/global/ej2-base.min.js.map +1 -1
- package/dist/global/index.d.ts +0 -9
- package/e2e/modified-protractor/protractor.config.js +316 -0
- package/e2e/protractor.config.js +56 -24
- package/helpers/e2e/base.js +62 -52
- package/helpers/e2e/index.js +8 -6
- package/package.json +78 -158
- package/src/animation.d.ts +13 -0
- package/src/animation.js +31 -4
- package/src/base.js +12 -12
- package/src/browser.js +9 -9
- package/src/child-property.js +10 -10
- package/src/component-model.d.ts +1 -1
- package/src/component.d.ts +1 -1
- package/src/component.js +30 -11
- package/src/dom.js +10 -10
- package/src/draggable-model.d.ts +21 -8
- package/src/draggable.d.ts +31 -6
- package/src/draggable.js +118 -21
- package/src/event-handler.js +6 -6
- package/src/hijri-parser.js +1 -1
- package/src/intl/date-parser.js +4 -4
- package/src/intl/intl-base.js +4 -4
- package/src/intl/number-formatter.js +3 -3
- package/src/intl/parser-base.js +2 -2
- package/src/keyboard.js +4 -4
- package/src/l10n.js +5 -5
- package/src/module-loader.js +2 -2
- package/src/notify-property-change.js +28 -28
- package/src/observer.js +9 -9
- package/src/sanitize-helper.js +3 -3
- package/src/template-engine.js +14 -14
- package/src/template.js +3 -2
- package/src/touch.js +4 -0
- package/src/util.js +30 -28
- package/src/validate-lic.d.ts +4 -0
- package/src/validate-lic.js +107 -42
- package/styles/_all.scss +1 -2
- package/styles/_bootstrap4-definition.scss +0 -1
- package/styles/_fusionnew-dark-definition.scss +9 -0
- package/styles/_fusionnew-definition.scss +9 -0
- package/styles/_highcontrast-light-definition.scss +0 -1
- package/styles/_material-dark-definition.scss +1 -1
- package/styles/_material-definition.scss +1 -1
- package/styles/_material3-dark-definition.scss +10 -0
- package/styles/_material3-definition.scss +9 -0
- package/styles/_tailwind-dark-definition.scss +1 -1
- package/styles/_tailwind-definition.scss +1 -1
- package/styles/animation/_all.scss +31 -30
- package/styles/bootstrap-dark.css +157 -1
- package/styles/bootstrap.css +157 -1
- package/styles/bootstrap4.css +157 -1
- package/styles/bootstrap5-dark.css +157 -1
- package/styles/bootstrap5.css +157 -1
- package/styles/common/_core.scss +16 -4
- package/styles/definition/_bootstrap-dark.scss +114 -0
- package/styles/definition/_bootstrap.scss +115 -1
- package/styles/definition/_bootstrap4.scss +114 -0
- package/styles/definition/_bootstrap5-dark.scss +132 -24
- package/styles/definition/_bootstrap5.scss +124 -14
- package/styles/definition/_fabric-dark.scss +114 -0
- package/styles/definition/_fabric.scss +114 -0
- package/styles/definition/_fluent-dark.scss +144 -22
- package/styles/definition/_fluent.scss +135 -14
- package/styles/definition/_fusionnew-dark.scss +360 -0
- package/styles/definition/_fusionnew.scss +361 -0
- package/styles/definition/_highcontrast-light.scss +112 -0
- package/styles/definition/_highcontrast.scss +114 -0
- package/styles/definition/_material-dark.scss +114 -0
- package/styles/definition/_material.scss +117 -0
- package/styles/definition/_material3-dark.scss +421 -0
- package/styles/definition/_material3.scss +361 -0
- package/styles/definition/_tailwind-dark.scss +128 -17
- package/styles/definition/_tailwind.scss +130 -19
- package/styles/fabric-dark.css +161 -2
- package/styles/fabric.css +161 -2
- package/styles/fluent-dark.css +157 -1
- package/styles/fluent.css +157 -1
- package/styles/highcontrast-light.css +164 -2
- package/styles/highcontrast.css +164 -2
- package/styles/material-dark.css +157 -1
- package/styles/material.css +157 -1
- package/styles/offline-theme/material-dark.css +2625 -0
- package/styles/offline-theme/material.css +2625 -0
- package/styles/offline-theme/tailwind-dark.css +1899 -0
- package/styles/offline-theme/tailwind.css +1899 -0
- package/styles/tailwind-dark.css +157 -1
- package/styles/tailwind.css +157 -1
package/dist/global/index.d.ts
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* filename: index.d.ts
|
|
3
|
-
* version : 20.1.56
|
|
4
|
-
* Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
|
|
5
|
-
* Use of this code is subject to the terms of our license.
|
|
6
|
-
* A copy of the current license can be obtained at any time by e-mailing
|
|
7
|
-
* licensing@syncfusion.com. Any infringement will be prosecuted under
|
|
8
|
-
* applicable laws.
|
|
9
|
-
*/
|
|
10
1
|
import * as _base from '@syncfusion/ej2-base';
|
|
11
2
|
|
|
12
3
|
export declare namespace ej {
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
var shell = require('shelljs');
|
|
2
|
+
var os = require('os');
|
|
3
|
+
var camelCase = require('pix-diff/lib/camelCase.js');
|
|
4
|
+
var seleniumAddress = 'http://150.107.121.2:4444/wd/hub';
|
|
5
|
+
var request = require('request');
|
|
6
|
+
var config = require('../../../../config.json');
|
|
7
|
+
var RepalceRegex = /"/g;
|
|
8
|
+
var isDashBoardReport = config['dashBoardReport'];
|
|
9
|
+
var timeCal = {};
|
|
10
|
+
var fs = require('fs');
|
|
11
|
+
var enableW3c = '{W3cdisabled}';
|
|
12
|
+
var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
|
|
13
|
+
var reporter = new HtmlScreenshotReporter({
|
|
14
|
+
dest: 'e2e_report/' + config.browsers[0],
|
|
15
|
+
filename: config.browsers[0] + '.html'
|
|
16
|
+
});
|
|
17
|
+
isDashBoardReport = isDashBoardReport === undefined ? true : isDashBoardReport;
|
|
18
|
+
if (isDashBoardReport) {
|
|
19
|
+
var currentRepo = shell.exec('git config --get remote.origin.url', {
|
|
20
|
+
silent: true
|
|
21
|
+
})
|
|
22
|
+
.stdout.split('essential-studio/')[1].replace('.git', '').replace('/', '').trim();
|
|
23
|
+
var components = JSON.stringify(config.components);
|
|
24
|
+
components = components.replace(RepalceRegex, '').replace('[', '').replace(']', '').trim();
|
|
25
|
+
var branch = JSON.stringify(config.branchName);
|
|
26
|
+
branch = branch.replace(RepalceRegex, '').trim();
|
|
27
|
+
var toMail = config.toMailAddress;
|
|
28
|
+
var ccMail = config.ccMailAddress;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
exports.config = {
|
|
32
|
+
allScriptsTimeout: 600000,
|
|
33
|
+
|
|
34
|
+
getPageTimeout: 60000,
|
|
35
|
+
|
|
36
|
+
framework: 'jasmine',
|
|
37
|
+
|
|
38
|
+
jasmineNodeOpts: {
|
|
39
|
+
defaultTimeoutInterval: 100000
|
|
40
|
+
},
|
|
41
|
+
multiCapabilities: [],
|
|
42
|
+
|
|
43
|
+
specs: ['../../../../e2e/tests/**/*.spec.js'],
|
|
44
|
+
|
|
45
|
+
onComplete: function () {
|
|
46
|
+
if (isDashBoardReport) {
|
|
47
|
+
var failurecount = 0;
|
|
48
|
+
var resultjson = require('../../../../jasmine-test-results.json');
|
|
49
|
+
var key = Object.keys(resultjson);
|
|
50
|
+
var totalcount = 0;
|
|
51
|
+
for (var i = 0; i < key.length; i++) {
|
|
52
|
+
var Objects = resultjson[key[i]]["specs"];
|
|
53
|
+
totalcount = totalcount + Objects.length;
|
|
54
|
+
for (var j = 0; j < Objects.length; j++) {
|
|
55
|
+
if (Objects[j].status === "failed") {
|
|
56
|
+
failurecount++;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
ccMail.push("ej2core@syncfusion.com");
|
|
61
|
+
var data = {
|
|
62
|
+
RepositoryName: currentRepo,
|
|
63
|
+
ComponentName: components,
|
|
64
|
+
BranchName: branch,
|
|
65
|
+
StartDate: new Date(),
|
|
66
|
+
EndDate: new Date(),
|
|
67
|
+
Type: "Desktop",
|
|
68
|
+
TotalTestCaseCount: totalcount,
|
|
69
|
+
FailureTestCaseCount: failurecount,
|
|
70
|
+
SuccessTestCaseCount: totalcount - failurecount,
|
|
71
|
+
Browser: browser.browserName,
|
|
72
|
+
toMailAddress: toMail,
|
|
73
|
+
ccMailAddress: ccMail
|
|
74
|
+
};
|
|
75
|
+
var status = failurecount.length ? 'Failure' : 'Success';
|
|
76
|
+
var successCount = totalcount - failurecount;
|
|
77
|
+
var notRun = totalcount - (successCount + failurecount);
|
|
78
|
+
if (fs.existsSync('./testreport')) {
|
|
79
|
+
shell.cd('./testreport');
|
|
80
|
+
shell.exec('Syncfusion.UpdateTestResults.exe /Platform:"JavaScript - EJ2" /Control:"' + components +
|
|
81
|
+
'" /TestingTool:"Selenium" /StartTime:"' + new Date().toLocaleTimeString() + '" /EndTime:"' + new Date().toLocaleTimeString() +
|
|
82
|
+
'" /Status:"' + status + '" /TotalTestCase:' + totalcount +
|
|
83
|
+
' /SuccessCount:' + successCount + ' /FailureCount:' + failurecount + ' /NotRunCount:' + notRun + ' /UpdatedBy:"' + toMail[0] + '"');
|
|
84
|
+
shell.cd('../');
|
|
85
|
+
}
|
|
86
|
+
request({
|
|
87
|
+
url: 'https://ej2services.syncfusion.com/cicentral/api/getE2EReport',
|
|
88
|
+
method: 'POST',
|
|
89
|
+
json: true,
|
|
90
|
+
body: data,
|
|
91
|
+
headers: {
|
|
92
|
+
'authorization': 'ej2centrailzedstatus',
|
|
93
|
+
'content-type': 'application/json'
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
browser.driver.quit();
|
|
99
|
+
console.log(browser.browserName + ' driver closed!');
|
|
100
|
+
},
|
|
101
|
+
beforeLaunch: function () {
|
|
102
|
+
return new Promise(function (resolve) {
|
|
103
|
+
reporter.beforeLaunch(resolve);
|
|
104
|
+
});
|
|
105
|
+
},
|
|
106
|
+
|
|
107
|
+
onPrepare: function () {
|
|
108
|
+
const PixDiff = require('pix-diff');
|
|
109
|
+
const fs = require('fs');
|
|
110
|
+
const path = require('path');
|
|
111
|
+
browser.ignoreSynchronization = true;
|
|
112
|
+
browser.waitForAngularEnabled = false;
|
|
113
|
+
browser.isDesktop = true;
|
|
114
|
+
timeCal['startTime'] = new Date().toLocaleTimeString();
|
|
115
|
+
browser.basePath = require('../../../../protractor.browser.json').basePath;
|
|
116
|
+
|
|
117
|
+
browser.driver.manage().window().setSize(1600, 1200);
|
|
118
|
+
var JSONReporter = require('jasmine-json-test-reporter');
|
|
119
|
+
jasmine.getEnv().addReporter(new JSONReporter({
|
|
120
|
+
file: 'jasmine-test-results.json',
|
|
121
|
+
beautify: true,
|
|
122
|
+
indentationLevel: 4 // used if beautify === true
|
|
123
|
+
}));
|
|
124
|
+
|
|
125
|
+
//move to out off user screen
|
|
126
|
+
browser.driver.manage().window().setPosition(2500, 0);
|
|
127
|
+
|
|
128
|
+
browser.load = function (path) {
|
|
129
|
+
browser.get(browser.basePath + path);
|
|
130
|
+
// browser.wait(function () {
|
|
131
|
+
// return element(By.css('.e-control')).isDisplayed();
|
|
132
|
+
// }, 3000);
|
|
133
|
+
|
|
134
|
+
if (browser.css) {
|
|
135
|
+
browser.injectCss(browser.css);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
browser.loadAsync = function (path) {
|
|
140
|
+
return browser.get(browser.basePath + path);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
browser.getCapabilities().then(function (cap) {
|
|
144
|
+
|
|
145
|
+
browser.browserName = cap.get('browserName');
|
|
146
|
+
|
|
147
|
+
browser.pixResult = PixDiff;
|
|
148
|
+
|
|
149
|
+
browser.pixDiff = new PixDiff({
|
|
150
|
+
basePath: './e2e',
|
|
151
|
+
diffPath: './e2e',
|
|
152
|
+
formatImageName: '{tag}'
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
//override difference path
|
|
156
|
+
browser.pixDiff.diffPath = path.normalize(camelCase('./e2e/Diff/' + browser.browserName));
|
|
157
|
+
//create folder if not present
|
|
158
|
+
createF(browser.pixDiff.diffPath);
|
|
159
|
+
|
|
160
|
+
browser.compareScreen = function (element, fileName, opt) {
|
|
161
|
+
var folderName = fileName;
|
|
162
|
+
var fArr = fileName.split('/');
|
|
163
|
+
if (fArr.length > 1) {
|
|
164
|
+
fArr.splice(-1, 1);
|
|
165
|
+
folderName = fArr.join('/')
|
|
166
|
+
createF(camelCase('e2e/expected/' + browser.pixDiff.browserName + '/' + folderName));
|
|
167
|
+
createF(camelCase('e2e/actual/' + browser.pixDiff.browserName + '/' + folderName));
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// thresholdType: 'percent',
|
|
171
|
+
// threshold: 0.009,
|
|
172
|
+
var option = {
|
|
173
|
+
imageAPath: '/expected/' + browser.pixDiff.browserName + '/' + fileName, // Use file-path
|
|
174
|
+
imageBPath: '/actual/' + browser.pixDiff.browserName + '/' + fileName,
|
|
175
|
+
filter: ['grayScale'],
|
|
176
|
+
debug: true,
|
|
177
|
+
hideShift: true,
|
|
178
|
+
};
|
|
179
|
+
var doneFn = arguments[arguments.length - 1];
|
|
180
|
+
if (typeof opt === 'object' && Object.keys(opt).length) {
|
|
181
|
+
Object.assign(option, opt);
|
|
182
|
+
}
|
|
183
|
+
browser.pixDiff.saveRegion(element, '/Actual/' + browser.pixDiff.browserName + '/' + fileName, option).then(() => {
|
|
184
|
+
var fPathName = path.resolve(__dirname, '../../../../' + camelCase('e2e/expected/' + browser.pixDiff.browserName + '/' + fileName) + '.png');
|
|
185
|
+
if (!fs.existsSync(fPathName) && fs.existsSync(fPathName.replace("Expected", "Actual"))) {
|
|
186
|
+
fs.copyFileSync(fPathName.replace("Expected", "Actual"), fPathName);
|
|
187
|
+
console.log('Expected Image Created : /expected/' + browser.pixDiff.browserName + '/' + fileName);
|
|
188
|
+
}
|
|
189
|
+
browser.saveCheckImage(element, fileName, option, doneFn);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
browser.saveCheckImage = function (element, fileName, option, doneFn) {
|
|
194
|
+
browser.pixDiff.checkRegion(element, '/Expected/' + browser.pixDiff.browserName + '/' + fileName, option).then((result) => {
|
|
195
|
+
//
|
|
196
|
+
// * - `RESULT_UNKNOWN`: 0
|
|
197
|
+
// * - `RESULT_DIFFERENT`: 1
|
|
198
|
+
// * - `RESULT_SIMILAR`: 7
|
|
199
|
+
// * - `RESULT_IDENTICAL`: 5
|
|
200
|
+
console.log(JSON.stringify(result));
|
|
201
|
+
expect(result.code).toEqual(browser.pixResult.RESULT_IDENTICAL);
|
|
202
|
+
if (typeof doneFn === 'function') {
|
|
203
|
+
doneFn();
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
browser.waitForEvent = function (id, moduleName, eventName) {
|
|
209
|
+
return browser.executeAsyncScript(function (id, moduleName, eventName, callback) {
|
|
210
|
+
var instances = document.getElementById(id).ej2_instances;
|
|
211
|
+
var instanceObj;
|
|
212
|
+
for (var i = 0; instances && i < instances.length; i++) {
|
|
213
|
+
if (instances[i].getModuleName() == moduleName) {
|
|
214
|
+
instanceObj = instances[i]
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
if (instanceObj) {
|
|
218
|
+
var handler;
|
|
219
|
+
handler = function (e) {
|
|
220
|
+
instanceObj.removeEventListener(eventName, handler);
|
|
221
|
+
callback();
|
|
222
|
+
};
|
|
223
|
+
instanceObj.addEventListener(eventName, handler);
|
|
224
|
+
} else {
|
|
225
|
+
callback();
|
|
226
|
+
}
|
|
227
|
+
}, id, moduleName, eventName);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
browser.injectScript = function (path, callback) {
|
|
231
|
+
return browser.executeAsyncScript(function (path) {
|
|
232
|
+
var head = document.getElementsByTagName('head')[0];
|
|
233
|
+
var script = document.createElement('script');
|
|
234
|
+
script.type = 'text/javascript';
|
|
235
|
+
script.onload = function () {
|
|
236
|
+
callback();
|
|
237
|
+
}
|
|
238
|
+
script.src = path;
|
|
239
|
+
head.appendChild(script);
|
|
240
|
+
}, browser.basePath + path);
|
|
241
|
+
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
browser.injectCss = function (content) {
|
|
245
|
+
return browser.wait(browser.executeScript(`
|
|
246
|
+
var style = document.createElement('style');
|
|
247
|
+
style.id = 'browsercss';
|
|
248
|
+
if (style.styleSheet) {style.styleSheet.cssText = '` + content + `';}
|
|
249
|
+
else{style.appendChild(document.createTextNode('` + content + `'));}
|
|
250
|
+
document.head.appendChild(style);
|
|
251
|
+
`));
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
});
|
|
255
|
+
jasmine.getEnv().addReporter(reporter);
|
|
256
|
+
|
|
257
|
+
},
|
|
258
|
+
afterLaunch: function (exitCode) {
|
|
259
|
+
return new Promise(function (resolve) {
|
|
260
|
+
reporter.afterLaunch(resolve.bind(this, exitCode));
|
|
261
|
+
});
|
|
262
|
+
},
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
//Browser Configuration
|
|
266
|
+
if (config.browsers && config.browsers.length) {
|
|
267
|
+
for (var i = 0; i < config.browsers.length; i++) {
|
|
268
|
+
var browserName = config.browsers[i];
|
|
269
|
+
if (browserName === 'chrome' && enableW3c === '{W3cenabled}') {
|
|
270
|
+
exports.config.multiCapabilities.push({
|
|
271
|
+
'browserName': browserName,
|
|
272
|
+
'goog:chromeOptions': { //disable w3c here
|
|
273
|
+
w3c: false,
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
} else {
|
|
277
|
+
exports.config.multiCapabilities.push({
|
|
278
|
+
'browserName': browserName
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
} else {
|
|
283
|
+
if (os.platform() === 'win32') {
|
|
284
|
+
exports.config.multiCapabilities.push({
|
|
285
|
+
'browserName': 'internet explorer'
|
|
286
|
+
});
|
|
287
|
+
if (Number(os.release().split('.')[0]) >= 10) {
|
|
288
|
+
exports.config.multiCapabilities.push({
|
|
289
|
+
'browserName': 'MicrosoftEdge'
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
exports.config.multiCapabilities.push({
|
|
294
|
+
'browserName': 'firefox'
|
|
295
|
+
});
|
|
296
|
+
if (enableW3c === '{W3cenabled}') {
|
|
297
|
+
exports.config.multiCapabilities.push({
|
|
298
|
+
'browserName': 'chrome',
|
|
299
|
+
'goog:chromeOptions': { //disable w3c here
|
|
300
|
+
w3c: false,
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
} else {
|
|
304
|
+
exports.config.multiCapabilities.push({
|
|
305
|
+
'browserName': 'chrome',
|
|
306
|
+
'chromeOptions': {
|
|
307
|
+
'args': ['no-sandbox']
|
|
308
|
+
}
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
exports.config.seleniumAddress = config.seleniumAddress || 'http://localhost:4444/wd/hub/';
|
|
313
|
+
|
|
314
|
+
function createF(path) {
|
|
315
|
+
shell.mkdir('-p', path);
|
|
316
|
+
}
|
package/e2e/protractor.config.js
CHANGED
|
@@ -8,6 +8,12 @@ var RepalceRegex = /"/g;
|
|
|
8
8
|
var isDashBoardReport = config['dashBoardReport'];
|
|
9
9
|
var timeCal = {};
|
|
10
10
|
var fs = require('fs');
|
|
11
|
+
var enableW3c = '{W3cdisabled}';
|
|
12
|
+
var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
|
|
13
|
+
var reporter = new HtmlScreenshotReporter({
|
|
14
|
+
dest: 'e2e_report/' + config.browsers[0],
|
|
15
|
+
filename: config.browsers[0] + '.html'
|
|
16
|
+
});
|
|
11
17
|
isDashBoardReport = isDashBoardReport === undefined ? true : isDashBoardReport;
|
|
12
18
|
if (isDashBoardReport) {
|
|
13
19
|
var currentRepo = shell.exec('git config --get remote.origin.url', {
|
|
@@ -22,8 +28,6 @@ if (isDashBoardReport) {
|
|
|
22
28
|
var ccMail = config.ccMailAddress;
|
|
23
29
|
}
|
|
24
30
|
|
|
25
|
-
|
|
26
|
-
|
|
27
31
|
exports.config = {
|
|
28
32
|
allScriptsTimeout: 600000,
|
|
29
33
|
|
|
@@ -67,19 +71,18 @@ exports.config = {
|
|
|
67
71
|
Browser: browser.browserName,
|
|
68
72
|
toMailAddress: toMail,
|
|
69
73
|
ccMailAddress: ccMail
|
|
70
|
-
|
|
71
74
|
};
|
|
72
75
|
var status = failurecount.length ? 'Failure' : 'Success';
|
|
73
76
|
var successCount = totalcount - failurecount;
|
|
74
77
|
var notRun = totalcount - (successCount + failurecount);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
if (fs.existsSync('./testreport')) {
|
|
79
|
+
shell.cd('./testreport');
|
|
80
|
+
shell.exec('Syncfusion.UpdateTestResults.exe /Platform:"JavaScript - EJ2" /Control:"' + components +
|
|
81
|
+
'" /TestingTool:"Selenium" /StartTime:"' + new Date().toLocaleTimeString() + '" /EndTime:"' + new Date().toLocaleTimeString() +
|
|
82
|
+
'" /Status:"' + status + '" /TotalTestCase:' + totalcount +
|
|
83
|
+
' /SuccessCount:' + successCount + ' /FailureCount:' + failurecount + ' /NotRunCount:' + notRun + ' /UpdatedBy:"' + toMail[0] + '"');
|
|
84
|
+
shell.cd('../');
|
|
85
|
+
}
|
|
83
86
|
request({
|
|
84
87
|
url: 'https://ej2services.syncfusion.com/cicentral/api/getE2EReport',
|
|
85
88
|
method: 'POST',
|
|
@@ -95,6 +98,11 @@ exports.config = {
|
|
|
95
98
|
browser.driver.quit();
|
|
96
99
|
console.log(browser.browserName + ' driver closed!');
|
|
97
100
|
},
|
|
101
|
+
beforeLaunch: function () {
|
|
102
|
+
return new Promise(function (resolve) {
|
|
103
|
+
reporter.beforeLaunch(resolve);
|
|
104
|
+
});
|
|
105
|
+
},
|
|
98
106
|
|
|
99
107
|
onPrepare: function () {
|
|
100
108
|
const PixDiff = require('pix-diff');
|
|
@@ -119,9 +127,9 @@ exports.config = {
|
|
|
119
127
|
|
|
120
128
|
browser.load = function (path) {
|
|
121
129
|
browser.get(browser.basePath + path);
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
130
|
+
browser.wait(function () {
|
|
131
|
+
return element(By.css('.e-control')).isDisplayed();
|
|
132
|
+
}, 3000);
|
|
125
133
|
|
|
126
134
|
if (browser.css) {
|
|
127
135
|
browser.injectCss(browser.css);
|
|
@@ -244,17 +252,32 @@ exports.config = {
|
|
|
244
252
|
}
|
|
245
253
|
|
|
246
254
|
});
|
|
255
|
+
jasmine.getEnv().addReporter(reporter);
|
|
247
256
|
|
|
248
257
|
},
|
|
258
|
+
afterLaunch: function (exitCode) {
|
|
259
|
+
return new Promise(function (resolve) {
|
|
260
|
+
reporter.afterLaunch(resolve.bind(this, exitCode));
|
|
261
|
+
});
|
|
262
|
+
},
|
|
249
263
|
};
|
|
250
264
|
|
|
251
265
|
//Browser Configuration
|
|
252
266
|
if (config.browsers && config.browsers.length) {
|
|
253
267
|
for (var i = 0; i < config.browsers.length; i++) {
|
|
254
268
|
var browserName = config.browsers[i];
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
269
|
+
if (browserName === 'chrome' && enableW3c === '{W3cenabled}') {
|
|
270
|
+
exports.config.multiCapabilities.push({
|
|
271
|
+
'browserName': browserName,
|
|
272
|
+
'goog:chromeOptions': { //disable w3c here
|
|
273
|
+
w3c: false,
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
} else {
|
|
277
|
+
exports.config.multiCapabilities.push({
|
|
278
|
+
'browserName': browserName
|
|
279
|
+
});
|
|
280
|
+
}
|
|
258
281
|
}
|
|
259
282
|
} else {
|
|
260
283
|
if (os.platform() === 'win32') {
|
|
@@ -270,15 +293,24 @@ if (config.browsers && config.browsers.length) {
|
|
|
270
293
|
exports.config.multiCapabilities.push({
|
|
271
294
|
'browserName': 'firefox'
|
|
272
295
|
});
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
'
|
|
277
|
-
|
|
278
|
-
|
|
296
|
+
if (enableW3c === '{W3cenabled}') {
|
|
297
|
+
exports.config.multiCapabilities.push({
|
|
298
|
+
'browserName': 'chrome',
|
|
299
|
+
'goog:chromeOptions': { //disable w3c here
|
|
300
|
+
w3c: false,
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
} else {
|
|
304
|
+
exports.config.multiCapabilities.push({
|
|
305
|
+
'browserName': 'chrome',
|
|
306
|
+
'chromeOptions': {
|
|
307
|
+
'args': ['no-sandbox']
|
|
308
|
+
}
|
|
309
|
+
});
|
|
310
|
+
}
|
|
279
311
|
}
|
|
280
312
|
exports.config.seleniumAddress = config.seleniumAddress || 'http://localhost:4444/wd/hub/';
|
|
281
313
|
|
|
282
314
|
function createF(path) {
|
|
283
315
|
shell.mkdir('-p', path);
|
|
284
|
-
}
|
|
316
|
+
}
|
package/helpers/e2e/base.js
CHANGED
|
@@ -1,56 +1,66 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
setModel(property, value) {
|
|
11
|
-
return Mapper.setModel(this.id, this.selector.bind(this), property, value);
|
|
12
|
-
}
|
|
13
|
-
getModel(property) {
|
|
14
|
-
return Mapper.getModel(this.id, this.selector.bind(this), property);
|
|
15
|
-
}
|
|
16
|
-
invoke(fName, args = []) {
|
|
17
|
-
return Mapper.invoke(this.id, this.selector.bind(this), fName, args);
|
|
18
|
-
}
|
|
19
|
-
eventHandler(eventName, callback) {
|
|
20
|
-
return this.selector('#' + this.id).then((ele) => {
|
|
21
|
-
var inst = ele[0].ej2_instances[0];
|
|
22
|
-
return inst[eventName] = callback;
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
exports.TestHelper = TestHelper;
|
|
27
|
-
class Mapper {
|
|
28
|
-
static setModel(id, selector, property, value) {
|
|
29
|
-
let result;
|
|
30
|
-
if (cy) {
|
|
31
|
-
result = selector('#' + id).then((ele) => {
|
|
32
|
-
return ele[0].ej2_instances[0][property] = value;
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
return result;
|
|
36
|
-
}
|
|
37
|
-
static getModel(id, selector, property) {
|
|
38
|
-
let result;
|
|
39
|
-
if (cy) {
|
|
40
|
-
result = selector('#' + id).then((ele) => {
|
|
41
|
-
return ele[0].ej2_instances[0][property];
|
|
42
|
-
});
|
|
1
|
+
define(["require", "exports"], function (require, exports) {
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
/**
|
|
5
|
+
* Base E2E Helper Function
|
|
6
|
+
*/
|
|
7
|
+
var TestHelper = /** @class */ (function () {
|
|
8
|
+
function TestHelper() {
|
|
43
9
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
10
|
+
TestHelper.prototype.selector = function (arg) {
|
|
11
|
+
return (this.wrapperFn ? this.wrapperFn(arg) : arg);
|
|
12
|
+
};
|
|
13
|
+
TestHelper.prototype.setModel = function (property, value) {
|
|
14
|
+
return Mapper.setModel(this.id, this.selector.bind(this), property, value);
|
|
15
|
+
};
|
|
16
|
+
TestHelper.prototype.getModel = function (property) {
|
|
17
|
+
return Mapper.getModel(this.id, this.selector.bind(this), property);
|
|
18
|
+
};
|
|
19
|
+
TestHelper.prototype.invoke = function (fName, args) {
|
|
20
|
+
if (args === void 0) { args = []; }
|
|
21
|
+
return Mapper.invoke(this.id, this.selector.bind(this), fName, args);
|
|
22
|
+
};
|
|
23
|
+
TestHelper.prototype.eventHandler = function (eventName, callback) {
|
|
24
|
+
return this.selector('#' + this.id).then(function (ele) {
|
|
50
25
|
var inst = ele[0].ej2_instances[0];
|
|
51
|
-
return inst[
|
|
26
|
+
return inst[eventName] = callback;
|
|
52
27
|
});
|
|
28
|
+
};
|
|
29
|
+
return TestHelper;
|
|
30
|
+
}());
|
|
31
|
+
exports.TestHelper = TestHelper;
|
|
32
|
+
var Mapper = /** @class */ (function () {
|
|
33
|
+
function Mapper() {
|
|
53
34
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
35
|
+
Mapper.setModel = function (id, selector, property, value) {
|
|
36
|
+
var result;
|
|
37
|
+
if (cy) {
|
|
38
|
+
result = selector('#' + id).then(function (ele) {
|
|
39
|
+
return ele[0].ej2_instances[0][property] = value;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
};
|
|
44
|
+
Mapper.getModel = function (id, selector, property) {
|
|
45
|
+
var result;
|
|
46
|
+
if (cy) {
|
|
47
|
+
result = selector('#' + id).then(function (ele) {
|
|
48
|
+
return ele[0].ej2_instances[0][property];
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
};
|
|
53
|
+
Mapper.invoke = function (id, selector, fName, args) {
|
|
54
|
+
if (args === void 0) { args = []; }
|
|
55
|
+
var result;
|
|
56
|
+
if (cy) {
|
|
57
|
+
result = selector('#' + id).then(function (ele) {
|
|
58
|
+
var inst = ele[0].ej2_instances[0];
|
|
59
|
+
return inst[fName].call(inst, args);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return result;
|
|
63
|
+
};
|
|
64
|
+
return Mapper;
|
|
65
|
+
}());
|
|
66
|
+
});
|
package/helpers/e2e/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
define(["require", "exports", "./base"], function (require, exports, base_1) {
|
|
2
|
+
"use strict";
|
|
3
|
+
function __export(m) {
|
|
4
|
+
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
|
|
5
|
+
}
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
__export(base_1);
|
|
8
|
+
});
|