Add: Sauce labs
This commit is contained in:
@@ -3,6 +3,7 @@ node_js:
|
||||
- "8"
|
||||
addons:
|
||||
chrome: stable
|
||||
sauce_connect: true
|
||||
before_script:
|
||||
- npm install -g codecov
|
||||
script:
|
||||
@@ -10,3 +11,4 @@ script:
|
||||
after_script:
|
||||
- npm run cov
|
||||
- codecov --disable=gcov
|
||||
- npm run test:sauce
|
||||
|
||||
@@ -50,7 +50,6 @@ module.exports = function (config)
|
||||
port: 9876,
|
||||
colors: true,
|
||||
logLevel: config.LOG_INFO,
|
||||
autoWatch: false,
|
||||
browsers: ['ChromeHeadless'],
|
||||
singleRun: true,
|
||||
concurrency: Infinity
|
||||
|
||||
65
karma.sauce.js
Normal file
65
karma.sauce.js
Normal file
@@ -0,0 +1,65 @@
|
||||
module.exports = function (config)
|
||||
{
|
||||
var customLaunchers = {
|
||||
sl_ios_safari_8: {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'iphone',
|
||||
version: '8.4'
|
||||
},
|
||||
sl_ios_safari_9: {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'iphone',
|
||||
version: '9.3'
|
||||
},
|
||||
sl_android_4_4: {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'android',
|
||||
version: '4.4'
|
||||
},
|
||||
sl_android_5_1: {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'android',
|
||||
version: '5.1'
|
||||
}
|
||||
};
|
||||
|
||||
config.set({
|
||||
basePath: '',
|
||||
frameworks: ['jquery-1.8.3'],
|
||||
files: [
|
||||
'eruda.js',
|
||||
'test/init.js',
|
||||
'node_modules/jasmine-core/lib/jasmine-core/jasmine.js',
|
||||
'node_modules/karma-jasmine/lib/boot.js',
|
||||
'node_modules/karma-jasmine/lib/adapter.js',
|
||||
'node_modules/jasmine-jquery/lib/jasmine-jquery.js',
|
||||
'test/util.js',
|
||||
'test/console.js',
|
||||
'test/elements.js',
|
||||
'test/features.js',
|
||||
'test/info.js',
|
||||
'test/network.js',
|
||||
'test/resources.js',
|
||||
'test/snippets.js',
|
||||
'test/sources.js',
|
||||
'test/settings.js',
|
||||
'test/eruda.js'
|
||||
],
|
||||
plugins: [
|
||||
'karma-jasmine',
|
||||
'karma-jquery',
|
||||
'karma-sauce-launcher'
|
||||
],
|
||||
reporters: ['dots', 'saucelabs'],
|
||||
port: 9876,
|
||||
colors: true,
|
||||
logLevel: config.LOG_INFO,
|
||||
sauceLabs: {
|
||||
testName: 'eruda'
|
||||
},
|
||||
captureTimeout: 120000,
|
||||
customLaunchers: customLaunchers,
|
||||
browsers: Object.keys(customLaunchers),
|
||||
singleRun: true
|
||||
});
|
||||
};
|
||||
390
package-lock.json
generated
390
package-lock.json
generated
@@ -60,12 +60,36 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"adm-zip": {
|
||||
"version": "0.4.7",
|
||||
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz",
|
||||
"integrity": "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=",
|
||||
"dev": true
|
||||
},
|
||||
"after": {
|
||||
"version": "0.8.2",
|
||||
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
|
||||
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
|
||||
"dev": true
|
||||
},
|
||||
"agent-base": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz",
|
||||
"integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"extend": "3.0.1",
|
||||
"semver": "5.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz",
|
||||
"integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"ajv": {
|
||||
"version": "5.2.3",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz",
|
||||
@@ -176,6 +200,48 @@
|
||||
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
|
||||
"dev": true
|
||||
},
|
||||
"archiver": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz",
|
||||
"integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"archiver-utils": "1.3.0",
|
||||
"async": "2.6.0",
|
||||
"buffer-crc32": "0.2.13",
|
||||
"glob": "7.1.2",
|
||||
"lodash": "4.17.4",
|
||||
"readable-stream": "2.3.3",
|
||||
"tar-stream": "1.5.4",
|
||||
"walkdir": "0.0.11",
|
||||
"zip-stream": "1.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"async": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
|
||||
"integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash": "4.17.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiver-utils": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz",
|
||||
"integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob": "7.1.2",
|
||||
"graceful-fs": "4.1.11",
|
||||
"lazystream": "1.0.0",
|
||||
"lodash": "4.17.4",
|
||||
"normalize-path": "2.1.1",
|
||||
"readable-stream": "2.3.3"
|
||||
}
|
||||
},
|
||||
"are-we-there-yet": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
|
||||
@@ -1126,6 +1192,15 @@
|
||||
"integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=",
|
||||
"dev": true
|
||||
},
|
||||
"bl": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz",
|
||||
"integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"readable-stream": "2.3.3"
|
||||
}
|
||||
},
|
||||
"blob": {
|
||||
"version": "0.0.4",
|
||||
"resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
|
||||
@@ -1312,6 +1387,12 @@
|
||||
"isarray": "1.0.0"
|
||||
}
|
||||
},
|
||||
"buffer-crc32": {
|
||||
"version": "0.2.13",
|
||||
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
|
||||
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-indexof": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
|
||||
@@ -1725,6 +1806,18 @@
|
||||
"integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
|
||||
"dev": true
|
||||
},
|
||||
"compress-commons": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz",
|
||||
"integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-crc32": "0.2.13",
|
||||
"crc32-stream": "2.0.0",
|
||||
"normalize-path": "2.1.1",
|
||||
"readable-stream": "2.3.3"
|
||||
}
|
||||
},
|
||||
"compressible": {
|
||||
"version": "2.0.11",
|
||||
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz",
|
||||
@@ -1914,6 +2007,22 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"crc": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz",
|
||||
"integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=",
|
||||
"dev": true
|
||||
},
|
||||
"crc32-stream": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz",
|
||||
"integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"crc": "3.5.0",
|
||||
"readable-stream": "2.3.3"
|
||||
}
|
||||
},
|
||||
"create-ecdh": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
|
||||
@@ -2613,6 +2722,15 @@
|
||||
"integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=",
|
||||
"dev": true
|
||||
},
|
||||
"end-of-stream": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
|
||||
"integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"once": "1.4.0"
|
||||
}
|
||||
},
|
||||
"engine.io": {
|
||||
"version": "1.8.3",
|
||||
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz",
|
||||
@@ -3634,6 +3752,21 @@
|
||||
"globule": "1.2.0"
|
||||
}
|
||||
},
|
||||
"generate-function": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
|
||||
"integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
|
||||
"dev": true
|
||||
},
|
||||
"generate-object-property": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
|
||||
"integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-property": "1.0.2"
|
||||
}
|
||||
},
|
||||
"get-caller-file": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
|
||||
@@ -4197,6 +4330,17 @@
|
||||
"integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=",
|
||||
"dev": true
|
||||
},
|
||||
"https-proxy-agent": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz",
|
||||
"integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"agent-base": "2.1.1",
|
||||
"debug": "2.6.9",
|
||||
"extend": "3.0.1"
|
||||
}
|
||||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.19",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
|
||||
@@ -4532,6 +4676,18 @@
|
||||
"is-extglob": "1.0.0"
|
||||
}
|
||||
},
|
||||
"is-my-json-valid": {
|
||||
"version": "2.16.1",
|
||||
"resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz",
|
||||
"integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"generate-function": "2.0.0",
|
||||
"generate-object-property": "1.2.0",
|
||||
"jsonpointer": "4.0.1",
|
||||
"xtend": "4.0.1"
|
||||
}
|
||||
},
|
||||
"is-number": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
|
||||
@@ -4617,6 +4773,12 @@
|
||||
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
|
||||
"dev": true
|
||||
},
|
||||
"is-property": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
|
||||
"integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
|
||||
"dev": true
|
||||
},
|
||||
"is-regex": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
|
||||
@@ -4911,6 +5073,12 @@
|
||||
"integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
|
||||
"dev": true
|
||||
},
|
||||
"jsonpointer": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
|
||||
"integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
|
||||
"dev": true
|
||||
},
|
||||
"jsprim": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
|
||||
@@ -5038,6 +5206,18 @@
|
||||
"integrity": "sha1-a+6TRU2LCWvMeBVXCoHnP93bXW8=",
|
||||
"dev": true
|
||||
},
|
||||
"karma-sauce-launcher": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/karma-sauce-launcher/-/karma-sauce-launcher-1.2.0.tgz",
|
||||
"integrity": "sha512-lEhtGRGS+3Yw6JSx/vJY9iQyHNtTjcojrSwNzqNUOaDceKDu9dPZqA/kr69bUO9G2T6GKbu8AZgXqy94qo31Jg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"q": "1.5.0",
|
||||
"sauce-connect-launcher": "1.2.3",
|
||||
"saucelabs": "1.4.0",
|
||||
"wd": "1.4.1"
|
||||
}
|
||||
},
|
||||
"karma-sourcemap-loader": {
|
||||
"version": "0.3.7",
|
||||
"resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz",
|
||||
@@ -5119,6 +5299,15 @@
|
||||
"set-getter": "0.1.0"
|
||||
}
|
||||
},
|
||||
"lazystream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
|
||||
"integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"readable-stream": "2.3.3"
|
||||
}
|
||||
},
|
||||
"lcid": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
|
||||
@@ -9216,6 +9405,39 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"sauce-connect-launcher": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/sauce-connect-launcher/-/sauce-connect-launcher-1.2.3.tgz",
|
||||
"integrity": "sha1-0vkxrXro/avxlopEDnsgQXrKf4Y=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"adm-zip": "0.4.7",
|
||||
"async": "2.6.0",
|
||||
"https-proxy-agent": "1.0.0",
|
||||
"lodash": "4.17.4",
|
||||
"rimraf": "2.6.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"async": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
|
||||
"integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash": "4.17.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"saucelabs": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.4.0.tgz",
|
||||
"integrity": "sha1-uTSpr52ih0s/QKrh/N5QpEZvXzg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"https-proxy-agent": "1.0.0"
|
||||
}
|
||||
},
|
||||
"sax": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
||||
@@ -9967,6 +10189,18 @@
|
||||
"inherits": "2.0.3"
|
||||
}
|
||||
},
|
||||
"tar-stream": {
|
||||
"version": "1.5.4",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz",
|
||||
"integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"bl": "1.2.1",
|
||||
"end-of-stream": "1.4.0",
|
||||
"readable-stream": "2.3.3",
|
||||
"xtend": "4.0.1"
|
||||
}
|
||||
},
|
||||
"text-table": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
|
||||
@@ -10404,6 +10638,12 @@
|
||||
"spdx-expression-parse": "1.0.4"
|
||||
}
|
||||
},
|
||||
"vargs": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/vargs/-/vargs-0.1.0.tgz",
|
||||
"integrity": "sha1-a2GE2mUgzDIEzhtAfKwm2SYJ6/8=",
|
||||
"dev": true
|
||||
},
|
||||
"vary": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||
@@ -10461,6 +10701,12 @@
|
||||
"integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
|
||||
"dev": true
|
||||
},
|
||||
"walkdir": {
|
||||
"version": "0.0.11",
|
||||
"resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz",
|
||||
"integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=",
|
||||
"dev": true
|
||||
},
|
||||
"watchpack": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz",
|
||||
@@ -10492,6 +10738,138 @@
|
||||
"minimalistic-assert": "1.0.0"
|
||||
}
|
||||
},
|
||||
"wd": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/wd/-/wd-1.4.1.tgz",
|
||||
"integrity": "sha512-C0wWd2X4SWWcyx5qxaixiZE4Vb07sl0yDfWHPeml8lDHSbmI9erE9BmTHIqOGoDxGgJ3/hkFmODQ7ZLKiF8+8Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"archiver": "1.3.0",
|
||||
"async": "2.0.1",
|
||||
"lodash": "4.16.2",
|
||||
"mkdirp": "0.5.1",
|
||||
"q": "1.4.1",
|
||||
"request": "2.79.0",
|
||||
"underscore.string": "3.3.4",
|
||||
"vargs": "0.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
|
||||
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
|
||||
"dev": true
|
||||
},
|
||||
"async": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.0.1.tgz",
|
||||
"integrity": "sha1-twnMAoCpw28J9FNr6CPIOKkEniU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash": "4.16.2"
|
||||
}
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
|
||||
"integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "2.2.1",
|
||||
"escape-string-regexp": "1.0.5",
|
||||
"has-ansi": "2.0.0",
|
||||
"strip-ansi": "3.0.1",
|
||||
"supports-color": "2.0.0"
|
||||
}
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
|
||||
"integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "1.1.3",
|
||||
"commander": "2.11.0",
|
||||
"is-my-json-valid": "2.16.1",
|
||||
"pinkie-promise": "2.0.1"
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.16.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.2.tgz",
|
||||
"integrity": "sha1-PmJtuCcEimmSgaihJSJjJs/A5lI=",
|
||||
"dev": true
|
||||
},
|
||||
"q": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
|
||||
"integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.3.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
|
||||
"integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
|
||||
"dev": true
|
||||
},
|
||||
"request": {
|
||||
"version": "2.79.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
|
||||
"integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"aws-sign2": "0.6.0",
|
||||
"aws4": "1.6.0",
|
||||
"caseless": "0.11.0",
|
||||
"combined-stream": "1.0.5",
|
||||
"extend": "3.0.1",
|
||||
"forever-agent": "0.6.1",
|
||||
"form-data": "2.1.4",
|
||||
"har-validator": "2.0.6",
|
||||
"hawk": "3.1.3",
|
||||
"http-signature": "1.1.1",
|
||||
"is-typedarray": "1.0.0",
|
||||
"isstream": "0.1.2",
|
||||
"json-stringify-safe": "5.0.1",
|
||||
"mime-types": "2.1.17",
|
||||
"oauth-sign": "0.8.2",
|
||||
"qs": "6.3.2",
|
||||
"stringstream": "0.0.5",
|
||||
"tough-cookie": "2.3.3",
|
||||
"tunnel-agent": "0.4.3",
|
||||
"uuid": "3.1.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
|
||||
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
|
||||
"dev": true
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
|
||||
"integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
|
||||
"dev": true
|
||||
},
|
||||
"underscore.string": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz",
|
||||
"integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"sprintf-js": "1.0.3",
|
||||
"util-deprecate": "1.0.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"webpack": {
|
||||
"version": "3.7.1",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-3.7.1.tgz",
|
||||
@@ -11047,6 +11425,18 @@
|
||||
"resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
|
||||
"integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
|
||||
"dev": true
|
||||
},
|
||||
"zip-stream": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz",
|
||||
"integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"archiver-utils": "1.3.0",
|
||||
"compress-commons": "1.2.2",
|
||||
"lodash": "4.17.4",
|
||||
"readable-stream": "2.3.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
11
package.json
11
package.json
@@ -9,6 +9,7 @@
|
||||
"cov": "npm run test && remap-istanbul -i coverage/coverage-final.json -o coverage/coverage-remapped.json -t json && node script/coverage",
|
||||
"dev": "webpack-dev-server --config script/webpack.dev.js --host 0.0.0.0",
|
||||
"test": "karma start",
|
||||
"test:sauce": "karma start karma.sauce.js",
|
||||
"lint": "eslint src",
|
||||
"setup": "node script/cpTestLib",
|
||||
"genScriptUtil": "eustia build script/*.js -o script/util.js",
|
||||
@@ -27,11 +28,12 @@
|
||||
},
|
||||
"test": {
|
||||
"files": [
|
||||
"test/**/*.js",
|
||||
"test/**/*.html"
|
||||
"test/*.js",
|
||||
"test/*.html"
|
||||
],
|
||||
"output": "test/util.js",
|
||||
"format": "global"
|
||||
"exclude": ["js"],
|
||||
"namespace": "util",
|
||||
"output": "test/util.js"
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
@@ -72,6 +74,7 @@
|
||||
"karma-coverage": "^1.1.1",
|
||||
"karma-jasmine": "^1.1.0",
|
||||
"karma-jquery": "^0.2.2",
|
||||
"karma-sauce-launcher": "^1.2.0",
|
||||
"karma-sourcemap-loader": "^0.3.7",
|
||||
"karma-sourcemap-writer": "^0.1.2",
|
||||
"karma-webpack": "^2.0.5",
|
||||
|
||||
@@ -18,8 +18,6 @@ export default class Resources extends Tool
|
||||
this._stylesheetData = [];
|
||||
this._imageData = [];
|
||||
this._tpl = require('./Resources.hbs');
|
||||
|
||||
this._observeScript()
|
||||
}
|
||||
init($el, parent)
|
||||
{
|
||||
@@ -30,6 +28,7 @@ export default class Resources extends Tool
|
||||
this.refresh();
|
||||
this._bindEvent();
|
||||
this._initCfg();
|
||||
this._observeScript();
|
||||
}
|
||||
refresh()
|
||||
{
|
||||
@@ -45,8 +44,7 @@ export default class Resources extends Tool
|
||||
super.destroy();
|
||||
|
||||
util.evalCss.remove(this._style);
|
||||
|
||||
this._unobserveScript()
|
||||
this._unobserveScript();
|
||||
}
|
||||
refreshScript()
|
||||
{
|
||||
@@ -355,20 +353,25 @@ export default class Resources extends Tool
|
||||
}
|
||||
_observeScript()
|
||||
{
|
||||
let MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
|
||||
let MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
|
||||
if (!MutationObserver) return;
|
||||
|
||||
this._scriptObserver = new MutationObserver(mutations =>
|
||||
{
|
||||
if (!this.active) return;
|
||||
|
||||
mutations.forEach(mutation =>
|
||||
{
|
||||
mutation.addedNodes.forEach(node => {
|
||||
mutation.addedNodes.forEach(node =>
|
||||
{
|
||||
if (/^script$/i.test(node.tagName) && node.src !== '')
|
||||
{
|
||||
this._scriptData.push(node.src);
|
||||
this._scriptData = util.unique(this._scriptData);
|
||||
this._render();
|
||||
}
|
||||
});
|
||||
|
||||
this._scriptData = util.unique(this._scriptData);
|
||||
this._render();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -377,7 +380,7 @@ export default class Resources extends Tool
|
||||
}
|
||||
_unobserveScript()
|
||||
{
|
||||
this._scriptObserver.disconnect();
|
||||
if (this._scriptObserver) this._scriptObserver.disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ describe('network', function ()
|
||||
it('xhr', function (done)
|
||||
{
|
||||
$('.eruda-clear-xhr').click();
|
||||
_.ajax.get(window.location.toString(), function ()
|
||||
util.ajax.get(window.location.toString(), function ()
|
||||
{
|
||||
expect($('.eruda-requests li')).toHaveLength(1);
|
||||
done();
|
||||
|
||||
@@ -46,7 +46,7 @@ describe('resources', function ()
|
||||
{
|
||||
it('show', function ()
|
||||
{
|
||||
_.cookie.set('testKey', 'testVal');
|
||||
util.cookie.set('testKey', 'testVal');
|
||||
$tool.find('.eruda-refresh-cookie').click();
|
||||
expect($tool.find('.eruda-cookie')).toContainText('testKey');
|
||||
});
|
||||
|
||||
109
test/util.js
109
test/util.js
@@ -1,9 +1,18 @@
|
||||
// Built by eustia.
|
||||
window._ = (function()
|
||||
(function(root, factory)
|
||||
{
|
||||
if (typeof define === 'function' && define.amd)
|
||||
{
|
||||
define([], factory);
|
||||
} else if (typeof module === 'object' && module.exports)
|
||||
{
|
||||
module.exports = factory();
|
||||
} else { root.util = factory(); }
|
||||
}(this, function ()
|
||||
{
|
||||
var _ = {};
|
||||
|
||||
if (typeof window === 'object' && window._) _ = window._;
|
||||
if (typeof window === 'object' && window.util) _ = window.util;
|
||||
|
||||
/* ------------------------------ noop ------------------------------ */
|
||||
|
||||
@@ -172,38 +181,6 @@ window._ = (function()
|
||||
return exports;
|
||||
})();
|
||||
|
||||
/* ------------------------------ toStr ------------------------------ */
|
||||
|
||||
var toStr = _.toStr = (function ()
|
||||
{
|
||||
/* Convert value to a string.
|
||||
*
|
||||
* |Name |Type |Desc |
|
||||
* |------|------|----------------|
|
||||
* |val |* |Value to convert|
|
||||
* |return|string|Resulted string |
|
||||
*
|
||||
* ```javascript
|
||||
* toStr(null); // -> ''
|
||||
* toStr(1); // -> '1'
|
||||
* toStr(false); // -> 'false'
|
||||
* toStr([1, 2, 3]); // -> '1,2,3'
|
||||
* ```
|
||||
*/
|
||||
|
||||
/* module
|
||||
* env: all
|
||||
* test: all
|
||||
*/
|
||||
|
||||
function exports(val)
|
||||
{
|
||||
return val == null ? '' : val.toString();
|
||||
}
|
||||
|
||||
return exports;
|
||||
})();
|
||||
|
||||
/* ------------------------------ has ------------------------------ */
|
||||
|
||||
var has = _.has = (function ()
|
||||
@@ -491,7 +468,7 @@ window._ = (function()
|
||||
|
||||
var each = _.each = (function ()
|
||||
{
|
||||
/* Iterates over elements of collection and invokes iteratee for each element.
|
||||
/* Iterate over elements of collection and invokes iteratee for each element.
|
||||
*
|
||||
* |Name |Type |Desc |
|
||||
* |--------|------------|------------------------------|
|
||||
@@ -1105,66 +1082,6 @@ window._ = (function()
|
||||
return exports;
|
||||
})();
|
||||
|
||||
/* ------------------------------ evalCss ------------------------------ */
|
||||
|
||||
_.evalCss = (function ()
|
||||
{
|
||||
/* dependencies
|
||||
* toStr each filter
|
||||
*/
|
||||
|
||||
var styleList = [],
|
||||
scale = 1;
|
||||
|
||||
function exports(css)
|
||||
{
|
||||
css = toStr(css);
|
||||
|
||||
for (var i = 0, len = styleList.length; i < len; i++)
|
||||
{
|
||||
if (styleList[i].css === css) return;
|
||||
}
|
||||
|
||||
let container = exports.container || document.head,
|
||||
el = document.createElement('style');
|
||||
|
||||
el.type = 'text/css';
|
||||
container.appendChild(el);
|
||||
|
||||
let style = {css, el, container};
|
||||
resetStyle(style);
|
||||
styleList.push(style);
|
||||
|
||||
return style;
|
||||
}
|
||||
|
||||
exports.setScale = function (s)
|
||||
{
|
||||
scale = s;
|
||||
each(styleList, style => resetStyle(style));
|
||||
};
|
||||
|
||||
exports.clear = function ()
|
||||
{
|
||||
each(styleList, ({container, el}) => container.removeChild(el));
|
||||
styleList = [];
|
||||
};
|
||||
|
||||
exports.remove = function (style)
|
||||
{
|
||||
styleList = filter(styleList, s => s !== style);
|
||||
|
||||
style.container.removeChild(style.el);
|
||||
};
|
||||
|
||||
function resetStyle({css, el})
|
||||
{
|
||||
el.innerText = css.replace(/(\d+)px/g, ($0, $1) => (+$1 * scale) + 'px');
|
||||
}
|
||||
|
||||
return exports;
|
||||
})();
|
||||
|
||||
/* ------------------------------ map ------------------------------ */
|
||||
|
||||
var map = _.map = (function ()
|
||||
@@ -1579,4 +1496,4 @@ window._ = (function()
|
||||
})();
|
||||
|
||||
return _;
|
||||
})();
|
||||
}));
|
||||
Reference in New Issue
Block a user