1
0
mirror of https://github.com/videojs/video.js.git synced 2025-07-17 01:42:41 +02:00

test: run tests via rollup (#5601)

This commit is contained in:
Brandon Casey
2019-08-30 14:56:41 -04:00
committed by Gary Katsevman
parent 85ad44e13e
commit 4134a9734b
17 changed files with 297 additions and 573 deletions

View File

@ -7,12 +7,12 @@ const sh = require('shelljs');
const files = sh.find(path.join(__dirname, '..', 'sandbox', '**', '*.*')) const files = sh.find(path.join(__dirname, '..', 'sandbox', '**', '*.*'))
.filter((filepath) => path.extname(filepath) === '.example'); .filter((filepath) => path.extname(filepath) === '.example');
const changes = files.map(function(file) { const changes = files.map(function(filepath) {
const p = path.parse(file.path); const p = path.parse(filepath);
const nonExample = path.join(p.dir, p.name); const nonExample = path.join(p.dir, p.name);
return { return {
file: file.path, file: filepath,
copy: nonExample copy: nonExample
}; };
}).filter(function(change) { }).filter(function(change) {

559
package-lock.json generated
View File

@ -1485,6 +1485,12 @@
"lodash": "^4.17.14" "lodash": "^4.17.14"
} }
}, },
"async-array-reduce": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/async-array-reduce/-/async-array-reduce-0.2.1.tgz",
"integrity": "sha1-yL4BCitc0A3qlsgRFgNGk9/dgtE=",
"dev": true
},
"async-each": { "async-each": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
@ -1546,98 +1552,6 @@
"is-buffer": "^2.0.2" "is-buffer": "^2.0.2"
} }
}, },
"babel-code-frame": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"dev": true,
"requires": {
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
},
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"dev": true
},
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"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.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
}
},
"js-tokens": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
"dev": true
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
"ansi-regex": "^2.0.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
}
}
},
"babel-generator": {
"version": "6.26.1",
"resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
"integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
"dev": true,
"requires": {
"babel-messages": "^6.23.0",
"babel-runtime": "^6.26.0",
"babel-types": "^6.26.0",
"detect-indent": "^4.0.0",
"jsesc": "^1.3.0",
"lodash": "^4.17.4",
"source-map": "^0.5.7",
"trim-right": "^1.0.1"
},
"dependencies": {
"jsesc": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
"integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
"dev": true
}
}
},
"babel-messages": {
"version": "6.23.0",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
"integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
"dev": true,
"requires": {
"babel-runtime": "^6.22.0"
}
},
"babel-plugin-dynamic-import-node": { "babel-plugin-dynamic-import-node": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
@ -1647,109 +1561,6 @@
"object.assign": "^4.1.0" "object.assign": "^4.1.0"
} }
}, },
"babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
},
"dependencies": {
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
"dev": true
}
}
},
"babel-template": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
"integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
"dev": true,
"requires": {
"babel-runtime": "^6.26.0",
"babel-traverse": "^6.26.0",
"babel-types": "^6.26.0",
"babylon": "^6.18.0",
"lodash": "^4.17.4"
}
},
"babel-traverse": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
"integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
"dev": true,
"requires": {
"babel-code-frame": "^6.26.0",
"babel-messages": "^6.23.0",
"babel-runtime": "^6.26.0",
"babel-types": "^6.26.0",
"babylon": "^6.18.0",
"debug": "^2.6.8",
"globals": "^9.18.0",
"invariant": "^2.2.2",
"lodash": "^4.17.4"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
},
"globals": {
"version": "9.18.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
"integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
"dev": true
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
}
}
},
"babel-types": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
"dev": true,
"requires": {
"babel-runtime": "^6.26.0",
"esutils": "^2.0.2",
"lodash": "^4.17.4",
"to-fast-properties": "^1.0.3"
},
"dependencies": {
"to-fast-properties": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
"integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
"dev": true
}
}
},
"babelify": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz",
"integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==",
"dev": true
},
"babylon": {
"version": "6.18.0",
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
"integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
"dev": true
},
"backo2": { "backo2": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
@ -2223,18 +2034,6 @@
"safe-buffer": "^5.1.2" "safe-buffer": "^5.1.2"
} }
}, },
"browserify-istanbul": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/browserify-istanbul/-/browserify-istanbul-3.0.1.tgz",
"integrity": "sha1-Gi3WPAyBoSORqApGb775F+sS3gc=",
"dev": true,
"requires": {
"istanbul-lib-instrument": "^1.8.0",
"minimatch": "^3.0.4",
"object-assign": "^4.1.1",
"through": "^2.3.8"
}
},
"browserify-rsa": { "browserify-rsa": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
@ -3289,9 +3088,9 @@
"dev": true "dev": true
}, },
"core-js": { "core-js": {
"version": "2.6.9", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz",
"integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==",
"dev": true "dev": true
}, },
"core-js-compat": { "core-js-compat": {
@ -3748,15 +3547,6 @@
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
"dev": true "dev": true
}, },
"detect-indent": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
"integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
"dev": true,
"requires": {
"repeating": "^2.0.0"
}
},
"detective": { "detective": {
"version": "5.2.0", "version": "5.2.0",
"resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
@ -4655,6 +4445,15 @@
} }
} }
}, },
"expand-tilde": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
"integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
"dev": true,
"requires": {
"homedir-polyfill": "^1.0.1"
}
},
"extend": { "extend": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
@ -4873,16 +4672,6 @@
"integrity": "sha512-iSWteWtfNcrWQTkQw8ble2bnonSl7YJImsn9OZKpE2E4IHhXI78eASpDYUljXZZdYj36QsEKjOs/CsiDqmKMJw==", "integrity": "sha512-iSWteWtfNcrWQTkQw8ble2bnonSl7YJImsn9OZKpE2E4IHhXI78eASpDYUljXZZdYj36QsEKjOs/CsiDqmKMJw==",
"dev": true "dev": true
}, },
"fill-keys": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz",
"integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=",
"dev": true,
"requires": {
"is-object": "~1.0.1",
"merge-descriptors": "~1.0.0"
}
},
"fill-range": { "fill-range": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
@ -6290,6 +6079,30 @@
"ini": "^1.3.4" "ini": "^1.3.4"
} }
}, },
"global-modules": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
"integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
"dev": true,
"requires": {
"global-prefix": "^1.0.1",
"is-windows": "^1.0.1",
"resolve-dir": "^1.0.0"
}
},
"global-prefix": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
"integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
"dev": true,
"requires": {
"expand-tilde": "^2.0.2",
"homedir-polyfill": "^1.0.1",
"ini": "^1.3.4",
"is-windows": "^1.0.1",
"which": "^1.2.14"
}
},
"globals": { "globals": {
"version": "11.12.0", "version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
@ -6447,13 +6260,24 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true "dev": true
}, },
"has-require": { "has-glob": {
"version": "1.2.2", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-require/-/has-require-1.2.2.tgz", "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz",
"integrity": "sha1-khZ1qxMNvZdo/I2o8ajiQt+kF3Q=", "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=",
"dev": true, "dev": true,
"requires": { "requires": {
"escape-string-regexp": "^1.0.3" "is-glob": "^3.0.0"
},
"dependencies": {
"is-glob": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
"dev": true,
"requires": {
"is-extglob": "^2.1.0"
}
}
} }
}, },
"has-symbols": { "has-symbols": {
@ -6535,12 +6359,6 @@
"pinkie-promise": "^2.0.0" "pinkie-promise": "^2.0.0"
} }
}, },
"hat": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz",
"integrity": "sha1-uwFKnmSzeIrtgAWRdBPU/z1QLYo=",
"dev": true
},
"hmac-drbg": { "hmac-drbg": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
@ -6552,6 +6370,15 @@
"minimalistic-crypto-utils": "^1.0.1" "minimalistic-crypto-utils": "^1.0.1"
} }
}, },
"homedir-polyfill": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
"integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
"dev": true,
"requires": {
"parse-passwd": "^1.0.0"
}
},
"hosted-git-info": { "hosted-git-info": {
"version": "2.8.4", "version": "2.8.4",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
@ -7457,6 +7284,12 @@
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
"dev": true "dev": true
}, },
"is-valid-glob": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz",
"integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=",
"dev": true
},
"is-whitespace-character": { "is-whitespace-character": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz",
@ -7613,27 +7446,6 @@
} }
} }
}, },
"istanbul-lib-coverage": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz",
"integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==",
"dev": true
},
"istanbul-lib-instrument": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz",
"integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==",
"dev": true,
"requires": {
"babel-generator": "^6.18.0",
"babel-template": "^6.16.0",
"babel-traverse": "^6.18.0",
"babel-types": "^6.18.0",
"babylon": "^6.18.0",
"istanbul-lib-coverage": "^1.2.1",
"semver": "^5.3.0"
}
},
"js-levenshtein": { "js-levenshtein": {
"version": "1.1.6", "version": "1.1.6",
"resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
@ -7646,12 +7458,6 @@
"integrity": "sha1-+IxgjjJKM3OpW8xFrTBeXJecRZs=", "integrity": "sha1-+IxgjjJKM3OpW8xFrTBeXJecRZs=",
"dev": true "dev": true
}, },
"js-string-escape": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
"integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=",
"dev": true
},
"js-tokens": { "js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@ -7961,12 +7767,6 @@
"integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==",
"dev": true "dev": true
}, },
"core-js": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz",
"integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==",
"dev": true
},
"fill-range": { "fill-range": {
"version": "7.0.1", "version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@ -8045,20 +7845,6 @@
} }
} }
}, },
"karma-browserify": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/karma-browserify/-/karma-browserify-5.3.0.tgz",
"integrity": "sha512-EMaUd1RNyQVGTETI80dtX/fEtYs57/A5sl3rClvzJFImPW1s3EtsbESfqNtk7/OkzfYuAHLh4RSZSSbVgvhNdQ==",
"dev": true,
"requires": {
"convert-source-map": "^1.1.3",
"hat": "^0.0.3",
"js-string-escape": "^1.0.0",
"lodash": "^4.17.10",
"minimatch": "^3.0.0",
"os-shim": "^0.1.3"
}
},
"karma-browserstack-launcher": { "karma-browserstack-launcher": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/karma-browserstack-launcher/-/karma-browserstack-launcher-1.4.0.tgz", "resolved": "https://registry.npmjs.org/karma-browserstack-launcher/-/karma-browserstack-launcher-1.4.0.tgz",
@ -9044,6 +8830,20 @@
"integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==",
"dev": true "dev": true
}, },
"matched": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/matched/-/matched-1.0.2.tgz",
"integrity": "sha512-7ivM1jFZVTOOS77QsR+TtYHH0ecdLclMkqbf5qiJdX2RorqfhsL65QHySPZgDE0ZjHoh+mQUNHTanNXIlzXd0Q==",
"dev": true,
"requires": {
"arr-union": "^3.1.0",
"async-array-reduce": "^0.2.1",
"glob": "^7.1.2",
"has-glob": "^1.0.0",
"is-valid-glob": "^1.0.0",
"resolve-dir": "^1.0.0"
}
},
"matcher": { "matcher": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/matcher/-/matcher-1.1.1.tgz", "resolved": "https://registry.npmjs.org/matcher/-/matcher-1.1.1.tgz",
@ -9248,12 +9048,6 @@
"trim-newlines": "^2.0.0" "trim-newlines": "^2.0.0"
} }
}, },
"merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
"dev": true
},
"merge2": { "merge2": {
"version": "1.2.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.4.tgz", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.4.tgz",
@ -9430,12 +9224,6 @@
"xtend": "^4.0.0" "xtend": "^4.0.0"
} }
}, },
"module-not-found-error": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz",
"integrity": "sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=",
"dev": true
},
"mpd-parser": { "mpd-parser": {
"version": "0.8.1", "version": "0.8.1",
"resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-0.8.1.tgz", "resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-0.8.1.tgz",
@ -10487,27 +10275,12 @@
} }
} }
}, },
"os-shim": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz",
"integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=",
"dev": true
},
"os-tmpdir": { "os-tmpdir": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true "dev": true
}, },
"outpipe": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz",
"integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=",
"dev": true,
"requires": {
"shell-quote": "^1.4.2"
}
},
"p-defer": { "p-defer": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
@ -10682,6 +10455,12 @@
"json-parse-better-errors": "^1.0.1" "json-parse-better-errors": "^1.0.1"
} }
}, },
"parse-passwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
"integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
"dev": true
},
"parse5": { "parse5": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
@ -10823,12 +10602,6 @@
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"dev": true "dev": true
}, },
"pff": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/pff/-/pff-1.0.0.tgz",
"integrity": "sha1-6l8J7mVxyuKSp4/CgJBaOGVmjng=",
"dev": true
},
"phantomjs-prebuilt": { "phantomjs-prebuilt": {
"version": "2.1.16", "version": "2.1.16",
"resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
@ -11249,53 +11022,6 @@
"levenshtein-edit-distance": "^1.0.0" "levenshtein-edit-distance": "^1.0.0"
} }
}, },
"proxyquireify": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/proxyquireify/-/proxyquireify-3.2.1.tgz",
"integrity": "sha1-Fb7hATYKzJHc2G7k2aRF+Klx7qA=",
"dev": true,
"requires": {
"browser-pack": "^6.0.0",
"detective": "~4.1.0",
"fill-keys": "^1.0.0",
"has-require": "^1.1.0",
"module-not-found-error": "~1.0.1",
"require-deps": "~1.0.1",
"through": "~2.2.7",
"xtend": "^3.0.0"
},
"dependencies": {
"acorn": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz",
"integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=",
"dev": true
},
"detective": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/detective/-/detective-4.1.1.tgz",
"integrity": "sha1-nEusHp+4uzT38YyuCA6h0Dr/LNo=",
"dev": true,
"requires": {
"acorn": "^1.0.3",
"defined": "^1.0.0",
"escodegen": "^1.4.1"
}
},
"through": {
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/through/-/through-2.2.7.tgz",
"integrity": "sha1-bo4hIAGR1OtqmfbwEN9Gqhxusr0=",
"dev": true
},
"xtend": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz",
"integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=",
"dev": true
}
}
},
"prr": { "prr": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
@ -11673,9 +11399,9 @@
} }
}, },
"regexp-tree": { "regexp-tree": {
"version": "0.1.12", "version": "0.1.13",
"resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.12.tgz", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.13.tgz",
"integrity": "sha512-TsXZ8+cv2uxMEkLfgwO0E068gsNMLfuYwMMhiUxf0Kw2Vcgzq93vgl6wIlIYuPmfMqMjfQ9zAporiozqCnwLuQ==", "integrity": "sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw==",
"dev": true "dev": true
}, },
"regexpp": { "regexpp": {
@ -12122,15 +11848,6 @@
"tough-cookie": "^2.3.3" "tough-cookie": "^2.3.3"
} }
}, },
"require-deps": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/require-deps/-/require-deps-1.0.1.tgz",
"integrity": "sha1-JBXPScNb02pdMXc5UQjT8jcgUmM=",
"dev": true,
"requires": {
"pff": "~1.0.0"
}
},
"require-directory": { "require-directory": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@ -12167,6 +11884,16 @@
"path-parse": "^1.0.6" "path-parse": "^1.0.6"
} }
}, },
"resolve-dir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
"integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
"dev": true,
"requires": {
"expand-tilde": "^2.0.0",
"global-modules": "^1.0.0"
}
},
"resolve-from": { "resolve-from": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
@ -12302,6 +12029,15 @@
"rollup-pluginutils": "^2.3.1" "rollup-pluginutils": "^2.3.1"
} }
}, },
"rollup-plugin-multi-entry": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/rollup-plugin-multi-entry/-/rollup-plugin-multi-entry-2.1.0.tgz",
"integrity": "sha512-YVVsI15uvbxMKdeYS5NXQa5zbVr/DYdDBBwseC80+KAc7mqDUjM6Qe4wl+jFucVw1yvBDZFk0PPSBZqoLq8xUA==",
"dev": true,
"requires": {
"matched": "^1.0.2"
}
},
"rollup-plugin-node-resolve": { "rollup-plugin-node-resolve": {
"version": "4.2.4", "version": "4.2.4",
"resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-4.2.4.tgz", "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-4.2.4.tgz",
@ -12323,6 +12059,50 @@
"chalk": "^2.4.2" "chalk": "^2.4.2"
} }
}, },
"rollup-plugin-stub": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/rollup-plugin-stub/-/rollup-plugin-stub-1.2.0.tgz",
"integrity": "sha1-qw2iBug5rsJTe58D66iKekn4yog=",
"dev": true,
"requires": {
"acorn": "^4.0.3",
"magic-string": "^0.17.0",
"rollup-pluginutils": "^1.5.2"
},
"dependencies": {
"acorn": {
"version": "4.0.13",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
"integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
"dev": true
},
"estree-walker": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz",
"integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4=",
"dev": true
},
"magic-string": {
"version": "0.17.0",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.17.0.tgz",
"integrity": "sha1-wcLC8+MNKlaPBVqW6hHOA2ZPt3I=",
"dev": true,
"requires": {
"vlq": "^0.2.1"
}
},
"rollup-pluginutils": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz",
"integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=",
"dev": true,
"requires": {
"estree-walker": "^0.2.1",
"minimatch": "^3.0.2"
}
}
}
},
"rollup-pluginutils": { "rollup-pluginutils": {
"version": "2.8.1", "version": "2.8.1",
"resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz", "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz",
@ -14475,6 +14255,12 @@
"global": "^4.3.1" "global": "^4.3.1"
} }
}, },
"vlq": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
"integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==",
"dev": true
},
"vm-browserify": { "vm-browserify": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz",
@ -14496,21 +14282,6 @@
"browser-process-hrtime": "^0.1.2" "browser-process-hrtime": "^0.1.2"
} }
}, },
"watchify": {
"version": "3.11.1",
"resolved": "https://registry.npmjs.org/watchify/-/watchify-3.11.1.tgz",
"integrity": "sha512-WwnUClyFNRMB2NIiHgJU9RQPQNqVeFk7OmZaWf5dC5EnNa0Mgr7imBydbaJ7tGTuPM2hz1Cb4uiBvK9NVxMfog==",
"dev": true,
"requires": {
"anymatch": "^2.0.0",
"browserify": "^16.1.0",
"chokidar": "^2.1.1",
"defined": "^1.0.0",
"outpipe": "^1.1.0",
"through2": "^2.0.0",
"xtend": "^4.0.0"
}
},
"watchpack": { "watchpack": {
"version": "0.2.9", "version": "0.2.9",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz",

View File

@ -96,10 +96,8 @@
"@babel/preset-env": "^7.4.5", "@babel/preset-env": "^7.4.5",
"access-sniff": "^3.2.0", "access-sniff": "^3.2.0",
"autoprefixer": "^9.6.0", "autoprefixer": "^9.6.0",
"babelify": "^10.0.0",
"bestzip": "^2.1.4", "bestzip": "^2.1.4",
"browserify": "^16.2.3", "browserify": "^16.2.3",
"browserify-istanbul": "^3.0.1",
"chokidar-cli": "^1.2.2", "chokidar-cli": "^1.2.2",
"clean-css-cli": "^4.3.0", "clean-css-cli": "^4.3.0",
"cli-table": "^0.3.1", "cli-table": "^0.3.1",
@ -114,7 +112,6 @@
"husky": "^1.2.0", "husky": "^1.2.0",
"jsdoc": "^3.6.2", "jsdoc": "^3.6.2",
"karma": "^4.1.0", "karma": "^4.1.0",
"karma-browserify": "^5.3.0",
"lint-staged": "^8.2.0", "lint-staged": "^8.2.0",
"markdown-table": "^1.1.3", "markdown-table": "^1.1.3",
"maxmin": "^2.1.0", "maxmin": "^2.1.0",
@ -122,7 +119,6 @@
"npm-merge-driver-install": "^1.1.1", "npm-merge-driver-install": "^1.1.1",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"postcss-cli": "^6.1.2", "postcss-cli": "^6.1.2",
"proxyquireify": "^3.2.1",
"qunit": "^2.9.2", "qunit": "^2.9.2",
"remark-cli": "^6.0.1", "remark-cli": "^6.0.1",
"remark-lint": "^6.0.4", "remark-lint": "^6.0.4",
@ -138,7 +134,9 @@
"rollup-plugin-ignore": "^1.0.5", "rollup-plugin-ignore": "^1.0.5",
"rollup-plugin-json": "^3.1.0", "rollup-plugin-json": "^3.1.0",
"rollup-plugin-node-resolve": "^4.2.4", "rollup-plugin-node-resolve": "^4.2.4",
"rollup-plugin-multi-entry": "^2.0.2",
"rollup-plugin-progress": "^1.1.1", "rollup-plugin-progress": "^1.1.1",
"rollup-plugin-stub": "^1.2.0",
"sass": "^1.21.0", "sass": "^1.21.0",
"semver": "^5.7.0", "semver": "^5.7.0",
"shelljs": "^0.8.3", "shelljs": "^0.8.3",
@ -151,7 +149,6 @@
"videojs-generate-karma-config": "~5.2.1", "videojs-generate-karma-config": "~5.2.1",
"videojs-languages": "^2.0.0", "videojs-languages": "^2.0.0",
"videojs-standard": "^8.0.3", "videojs-standard": "^8.0.3",
"watchify": "^3.11.0",
"webpack": "^1.15.0" "webpack": "^1.15.0"
}, },
"vjsstandard": { "vjsstandard": {

View File

@ -9,6 +9,8 @@ import ignore from 'rollup-plugin-ignore';
import alias from 'rollup-plugin-alias'; import alias from 'rollup-plugin-alias';
import _ from 'lodash'; import _ from 'lodash';
import pkg from './package.json'; import pkg from './package.json';
import multiEntry from 'rollup-plugin-multi-entry';
import stub from 'rollup-plugin-stub';
const compiledLicense = _.template(fs.readFileSync('./build/license-header.txt', 'utf8')); const compiledLicense = _.template(fs.readFileSync('./build/license-header.txt', 'utf8'));
const bannerData = _.pick(pkg, ['version', 'copyright']); const bannerData = _.pick(pkg, ['version', 'copyright']);
@ -247,5 +249,30 @@ export default cliargs => [
], ],
onwarn, onwarn,
watch watch
},
{
input: 'test/unit/**/*.test.js',
output: {
format: 'iife',
name: 'videojsTests',
file: 'test/dist/bundle.js',
globals: globals.test
},
external: externals.test,
plugins: [
multiEntry({exports: false}),
alias({
'video.js': path.resolve(__dirname, './src/js/video.js')
}),
primedResolve,
json(),
stub(),
primedCjs,
primedBabel,
cliargs.progress !== false ? progress() : {}
],
onwarn,
watch
} }
]; ];

View File

@ -150,11 +150,19 @@ export const getFileExtension = function(path) {
* @param {string} url * @param {string} url
* The url to check. * The url to check.
* *
* @param {Object} [winLoc]
* the domain to check the url against, defaults to window.location
*
* @param {string} [winLoc.protocol]
* The window location protocol defaults to window.location.protocol
*
* @param {string} [winLoc.host]
* The window location host defaults to window.location.host
*
* @return {boolean} * @return {boolean}
* Whether it is a cross domain request or not. * Whether it is a cross domain request or not.
*/ */
export const isCrossOrigin = function(url) { export const isCrossOrigin = function(url, winLoc = window.location) {
const winLoc = window.location;
const urlInfo = parseUrl(url); const urlInfo = parseUrl(url);
// IE8 protocol relative urls will return ':' for protocol // IE8 protocol relative urls will return ':' for protocol

View File

@ -1,19 +0,0 @@
/* eslint-env qunit */
import 'es5-shim';
import 'es6-shim';
import document from 'global/document';
import window from 'global/window';
import sinon from 'sinon';
window.q = QUnit;
window.sinon = sinon;
// There's nowhere we require completing xhr requests
// and raynos/xhr doesn't want to make stubbing easy (Raynos/xhr#11)
// so we need to stub XHR before the xhr module is included anywhere else.
window.xhr = sinon.useFakeXMLHttpRequest();
// This may not be needed anymore, but double check before removing
window.fixture = document.createElement('div');
window.fixture.id = 'qunit-fixture';
document.body.appendChild(window.fixture);

View File

@ -30,34 +30,17 @@ module.exports = function(config) {
}); });
config.files = [ config.files = [
'node_modules/es5-shim/es5-shim.js',
'node_modules/es6-shim/es6-shim.js',
'node_modules/sinon/pkg/sinon.js',
'dist/video-js.css', 'dist/video-js.css',
'test/globals-shim.js', 'test/dist/bundle.js',
'test/unit/**/*.js',
'test/dist/browserify.js', 'test/dist/browserify.js',
'test/dist/webpack.js', 'test/dist/webpack.js'
{pattern: 'src/**/*.js', watched: true, included: false, served: false }
]; ];
config.browserStack.project = 'Video.js'; config.browserStack.project = 'Video.js';
config.frameworks.push('browserify');
config.browserify = {
debug: true,
plugin: ['proxyquireify/plugin'],
transform: [
['babelify', {presets: [['@babel/preset-env', {loose: true}]]}]
]
};
if (reportCoverage) {
config.browserify.transform.push('browserify-istanbul');
}
config.preprocessors = {
'test/globals-shim.js': ['browserify'],
'test/unit/**/*.js': ['browserify']
};
// pin Browserstack Firefox version to 64 // pin Browserstack Firefox version to 64
/* eslint-disable camelcase */ /* eslint-disable camelcase */
config.customLaunchers.bsFirefox.browser_version = '64.0'; config.customLaunchers.bsFirefox.browser_version = '64.0';

View File

@ -791,7 +791,7 @@ QUnit.test('should emit a tap event', function(assert) {
assert.expect(3); assert.expect(3);
// Fake touch support. Real touch support isn't needed for this test. // Fake touch support. Real touch support isn't needed for this test.
browser.TOUCH_ENABLED = true; browser.stub_TOUCH_ENABLED(true);
comp.emitTapEvents(); comp.emitTapEvents();
comp.on('tap', function() { comp.on('tap', function() {
@ -839,7 +839,7 @@ QUnit.test('should emit a tap event', function(assert) {
comp.trigger('touchend'); comp.trigger('touchend');
// Reset to orignial value // Reset to orignial value
browser.TOUCH_ENABLED = origTouch; browser.stub_TOUCH_ENABLED(origTouch);
comp.dispose(); comp.dispose();
}); });

View File

@ -14,6 +14,7 @@ import sinon from 'sinon';
import window from 'global/window'; import window from 'global/window';
import * as middleware from '../../src/js/tech/middleware.js'; import * as middleware from '../../src/js/tech/middleware.js';
import * as Events from '../../src/js/utils/events.js'; import * as Events from '../../src/js/utils/events.js';
import pkg from '../../package.json';
QUnit.module('Player', { QUnit.module('Player', {
beforeEach() { beforeEach() {
@ -703,13 +704,13 @@ QUnit.test('should add a touch-enabled classname when touch is supported', funct
// Fake touch support. Real touch support isn't needed for this test. // Fake touch support. Real touch support isn't needed for this test.
const origTouch = browser.TOUCH_ENABLED; const origTouch = browser.TOUCH_ENABLED;
browser.TOUCH_ENABLED = true; browser.stub_TOUCH_ENABLED(true);
const player = TestHelpers.makePlayer({}); const player = TestHelpers.makePlayer({});
assert.notEqual(player.el().className.indexOf('vjs-touch-enabled'), -1, 'touch-enabled classname added'); assert.notEqual(player.el().className.indexOf('vjs-touch-enabled'), -1, 'touch-enabled classname added');
browser.TOUCH_ENABLED = origTouch; browser.stub_TOUCH_ENABLED(origTouch);
player.dispose(); player.dispose();
}); });
@ -719,13 +720,13 @@ QUnit.test('should not add a touch-enabled classname when touch is not supported
// Fake not having touch support in case that the browser running the test supports it // Fake not having touch support in case that the browser running the test supports it
const origTouch = browser.TOUCH_ENABLED; const origTouch = browser.TOUCH_ENABLED;
browser.TOUCH_ENABLED = false; browser.stub_TOUCH_ENABLED(false);
const player = TestHelpers.makePlayer({}); const player = TestHelpers.makePlayer({});
assert.equal(player.el().className.indexOf('vjs-touch-enabled'), -1, 'touch-enabled classname not added'); assert.equal(player.el().className.indexOf('vjs-touch-enabled'), -1, 'touch-enabled classname not added');
browser.TOUCH_ENABLED = origTouch; browser.stub_TOUCH_ENABLED(origTouch);
player.dispose(); player.dispose();
}); });
@ -1997,7 +1998,7 @@ QUnit.test('options: plugins', function(assert) {
}); });
QUnit.test('should add a class with major version', function(assert) { QUnit.test('should add a class with major version', function(assert) {
const majorVersion = require('../../package.json').version.split('.')[0]; const majorVersion = pkg.version.split('.')[0];
const player = TestHelpers.makePlayer(); const player = TestHelpers.makePlayer();
assert.ok(player.hasClass('vjs-v' + majorVersion), 'the version class should be added to the player'); assert.ok(player.hasClass('vjs-v' + majorVersion), 'the version class should be added to the player');

View File

@ -1,13 +1,11 @@
/* eslint-env qunit */ /* eslint-env qunit */
import PosterImage from '../../src/js/poster-image.js'; import PosterImage from '../../src/js/poster-image.js';
import * as browser from '../../src/js/utils/browser.js';
import TestHelpers from './test-helpers.js'; import TestHelpers from './test-helpers.js';
import document from 'global/document'; import document from 'global/document';
QUnit.module('PosterImage', { QUnit.module('PosterImage', {
beforeEach() { beforeEach() {
// Store the original background support so we can test different vals // Store the original background support so we can test different vals
this.origVal = browser.BACKGROUND_SIZE_SUPPORTED;
this.poster1 = '#poster1'; this.poster1 = '#poster1';
this.poster2 = '#poster2'; this.poster2 = '#poster2';
@ -27,14 +25,10 @@ QUnit.module('PosterImage', {
} }
}; };
}, },
afterEach() { afterEach() {}
browser.BACKGROUND_SIZE_SUPPORTED = this.origVal;
}
}); });
QUnit.test('should create and update a poster image', function(assert) { QUnit.test('should create and update a poster image', function(assert) {
browser.BACKGROUND_SIZE_SUPPORTED = true;
const posterImage = new PosterImage(this.mockPlayer); const posterImage = new PosterImage(this.mockPlayer);
let backgroundImage = posterImage.el().style.backgroundImage; let backgroundImage = posterImage.el().style.backgroundImage;

View File

@ -126,17 +126,17 @@ QUnit.test('blacklist playbackRate support on older verisons of Chrome on Androi
const oldIsChrome = browser.IS_CHROME; const oldIsChrome = browser.IS_CHROME;
const oldChromeVersion = browser.CHROME_VERSION; const oldChromeVersion = browser.CHROME_VERSION;
browser.IS_ANDROID = true; browser.stub_IS_ANDROID(true);
browser.IS_CHROME = true; browser.stub_IS_CHROME(true);
browser.CHROME_VERSION = 50; browser.stub_CHROME_VERSION(50);
assert.strictEqual(Html5.canControlPlaybackRate(), false, 'canControlPlaybackRate should return false on older Chrome'); assert.strictEqual(Html5.canControlPlaybackRate(), false, 'canControlPlaybackRate should return false on older Chrome');
browser.CHROME_VERSION = 58; browser.stub_CHROME_VERSION(58);
assert.strictEqual(Html5.canControlPlaybackRate(), true, 'canControlPlaybackRate should return true on newer Chrome'); assert.strictEqual(Html5.canControlPlaybackRate(), true, 'canControlPlaybackRate should return true on newer Chrome');
browser.IS_ANDROID = oldIsAndroid; browser.stub_IS_ANDROID(oldIsAndroid);
browser.IS_CHROME = oldIsChrome; browser.stub_IS_CHROME(oldIsChrome);
browser.CHROME_VERSION = oldChromeVersion; browser.stub_CHROME_VERSION(oldChromeVersion);
}); });
QUnit.test('test volume', function(assert) { QUnit.test('test volume', function(assert) {
@ -195,9 +195,9 @@ QUnit.test('patchCanPlayType patches canplaytype with our function, conditionall
const video = document.createElement('video'); const video = document.createElement('video');
const canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType; const canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;
browser.ANDROID_VERSION = 4.0; browser.stub_ANDROID_VERSION(4.0);
browser.IS_FIREFOX = false; browser.stub_IS_FIREFOX(false);
browser.IS_CHROME = false; browser.stub_IS_CHROME(false);
Html5.patchCanPlayType(); Html5.patchCanPlayType();
assert.notStrictEqual( assert.notStrictEqual(
@ -220,9 +220,9 @@ QUnit.test('patchCanPlayType patches canplaytype with our function, conditionall
'patched canPlayType and function returned from unpatch are equal' 'patched canPlayType and function returned from unpatch are equal'
); );
browser.ANDROID_VERSION = oldAV; browser.stub_ANDROID_VERSION(oldAV);
browser.IS_FIREFOX = oldIsFirefox; browser.stub_IS_FIREFOX(oldIsFirefox);
browser.IS_CHROME = oldIsChrome; browser.stub_IS_CHROME(oldIsChrome);
Html5.unpatchCanPlayType(); Html5.unpatchCanPlayType();
}); });
@ -236,9 +236,9 @@ QUnit.test('patchCanPlayType doesn\'t patch canplaytype with our function in Chr
const video = document.createElement('video'); const video = document.createElement('video');
const canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType; const canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;
browser.ANDROID_VERSION = 4.0; browser.stub_ANDROID_VERSION(4.0);
browser.IS_CHROME = true; browser.stub_IS_CHROME(true);
browser.IS_FIREFOX = false; browser.stub_IS_FIREFOX(false);
Html5.patchCanPlayType(); Html5.patchCanPlayType();
assert.strictEqual( assert.strictEqual(
@ -247,9 +247,9 @@ QUnit.test('patchCanPlayType doesn\'t patch canplaytype with our function in Chr
'original canPlayType and patched canPlayType should be equal' 'original canPlayType and patched canPlayType should be equal'
); );
browser.ANDROID_VERSION = oldAV; browser.stub_ANDROID_VERSION(oldAV);
browser.IS_CHROME = oldIsChrome; browser.stub_IS_CHROME(oldIsChrome);
browser.IS_FIREFOX = oldIsFirefox; browser.stub_IS_FIREFOX(oldIsFirefox);
Html5.unpatchCanPlayType(); Html5.unpatchCanPlayType();
}); });
@ -263,9 +263,9 @@ QUnit.test('patchCanPlayType doesn\'t patch canplaytype with our function in Fir
const video = document.createElement('video'); const video = document.createElement('video');
const canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType; const canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;
browser.ANDROID_VERSION = 4.0; browser.stub_ANDROID_VERSION(4.0);
browser.IS_FIREFOX = true; browser.stub_IS_FIREFOX(true);
browser.IS_CHROME = false; browser.stub_IS_CHROME(false);
Html5.patchCanPlayType(); Html5.patchCanPlayType();
assert.strictEqual( assert.strictEqual(
@ -274,9 +274,9 @@ QUnit.test('patchCanPlayType doesn\'t patch canplaytype with our function in Fir
'original canPlayType and patched canPlayType should be equal' 'original canPlayType and patched canPlayType should be equal'
); );
browser.ANDROID_VERSION = oldAV; browser.stub_ANDROID_VERSION(oldAV);
browser.IS_FIREFOX = oldIsFirefox; browser.stub_IS_FIREFOX(oldIsFirefox);
browser.IS_CHROME = oldIsChrome; browser.stub_IS_CHROME(oldIsChrome);
Html5.unpatchCanPlayType(); Html5.unpatchCanPlayType();
}); });
@ -286,9 +286,9 @@ QUnit.test('should return maybe for HLS urls on Android 4.0 or above when not Ch
const oldIsChrome = browser.IS_CHROME; const oldIsChrome = browser.IS_CHROME;
const video = document.createElement('video'); const video = document.createElement('video');
browser.ANDROID_VERSION = 4.0; browser.stub_ANDROID_VERSION(4.0);
browser.IS_FIREFOX = false; browser.stub_IS_FIREFOX(false);
browser.IS_CHROME = false; browser.stub_IS_CHROME(false);
Html5.patchCanPlayType(); Html5.patchCanPlayType();
assert.strictEqual( assert.strictEqual(
@ -314,26 +314,9 @@ QUnit.test('should return maybe for HLS urls on Android 4.0 or above when not Ch
'maybe for vnd.apple.mpegurl' 'maybe for vnd.apple.mpegurl'
); );
browser.ANDROID_VERSION = oldAV; browser.stub_ANDROID_VERSION(oldAV);
browser.IS_FIREFOX = oldIsFirefox; browser.stub_IS_FIREFOX(oldIsFirefox);
browser.IS_CHROME = oldIsChrome; browser.stub_IS_CHROME(oldIsChrome);
Html5.unpatchCanPlayType();
});
QUnit.test('should return a maybe for mp4 on OLD ANDROID', function(assert) {
const isOldAndroid = browser.IS_OLD_ANDROID;
const video = document.createElement('video');
browser.IS_OLD_ANDROID = true;
Html5.patchCanPlayType();
assert.strictEqual(
video.canPlayType('video/mp4'),
'maybe',
'old android should return a maybe for video/mp4'
);
browser.IS_OLD_ANDROID = isOldAndroid;
Html5.unpatchCanPlayType(); Html5.unpatchCanPlayType();
}); });
@ -911,8 +894,8 @@ QUnit.test('When Android Chrome reports Infinity duration with currentTime 0, re
const oldIsChrome = browser.IS_CHROME; const oldIsChrome = browser.IS_CHROME;
const oldEl = tech.el_; const oldEl = tech.el_;
browser.IS_ANDROID = true; browser.stub_IS_ANDROID(true);
browser.IS_CHROME = true; browser.stub_IS_CHROME(true);
tech.el_ = { tech.el_ = {
duration: Infinity, duration: Infinity,
@ -920,8 +903,8 @@ QUnit.test('When Android Chrome reports Infinity duration with currentTime 0, re
}; };
assert.ok(Number.isNaN(tech.duration()), 'returned NaN with currentTime 0'); assert.ok(Number.isNaN(tech.duration()), 'returned NaN with currentTime 0');
browser.IS_ANDROID = oldIsAndroid; browser.stub_IS_ANDROID(oldIsAndroid);
browser.IS_CHROME = oldIsChrome; browser.stub_IS_CHROME(oldIsChrome);
tech.el_ = oldEl; tech.el_ = oldEl;
}); });

View File

@ -52,7 +52,7 @@ QUnit.test('if native text tracks are not supported, create a texttrackdisplay',
textTracks: [] textTracks: []
}; };
browser.IS_FIREFOX = true; browser.stub_IS_FIREFOX(true);
const fakeTTDSpy = sinon.spy(); const fakeTTDSpy = sinon.spy();
@ -70,7 +70,7 @@ QUnit.test('if native text tracks are not supported, create a texttrackdisplay',
assert.strictEqual(fakeTTDSpy.callCount, 1, 'text track display was created'); assert.strictEqual(fakeTTDSpy.callCount, 1, 'text track display was created');
Html5.TEST_VID = oldTestVid; Html5.TEST_VID = oldTestVid;
browser.IS_FIREFOX = oldIsFirefox; browser.stub_IS_FIREFOX(oldIsFirefox);
Component.registerComponent('TextTrackDisplay', oldTextTrackDisplay); Component.registerComponent('TextTrackDisplay', oldTextTrackDisplay);
player.dispose(); player.dispose();

View File

@ -7,14 +7,23 @@ import TextTrack from '../../../src/js/tracks/text-track.js';
import TestHelpers from '../test-helpers.js'; import TestHelpers from '../test-helpers.js';
import sinon from 'sinon'; import sinon from 'sinon';
import log from '../../../src/js/utils/log.js'; import log from '../../../src/js/utils/log.js';
import XHR from '@videojs/xhr';
QUnit.module('Text Track', { QUnit.module('Text Track', {
beforeEach() { beforeEach() {
this.tech = new TechFaker(); this.tech = new TechFaker();
this.oldXMLHttpRequest = XHR.XMLHttpRequest;
this.oldXDomainRequest = XHR.XDomainRequest;
this.xhr = sinon.useFakeXMLHttpRequest();
XHR.XMLHttpRequest = this.xhr;
XHR.XDomainRequest = this.xhr;
}, },
afterEach() { afterEach() {
this.tech.dispose(); this.tech.dispose();
this.tech = null; this.tech = null;
XHR.XMLHttpRequest = this.oldXMLHttpRequest;
XHR.XDomainRequest = this.oldXDomainRequest;
this.xhr.restore();
} }
}); });
@ -416,7 +425,7 @@ QUnit.test('tracks are parsed if vttjs is loaded', function(assert) {
let parserCreated = false; let parserCreated = false;
const reqs = []; const reqs = [];
window.xhr.onCreate = function(req) { this.xhr.onCreate = function(req) {
reqs.push(req); reqs.push(req);
}; };
@ -453,7 +462,7 @@ QUnit.test('tracks are parsed once vttjs is loaded', function(assert) {
let parserCreated = false; let parserCreated = false;
const reqs = []; const reqs = [];
window.xhr.onCreate = function(req) { this.xhr.onCreate = function(req) {
reqs.push(req); reqs.push(req);
}; };
@ -505,7 +514,7 @@ QUnit.test('stops processing if vttjs loading errored out', function(assert) {
const oldLogError = log.error; const oldLogError = log.error;
const reqs = []; const reqs = [];
window.xhr.onCreate = function(req) { this.xhr.onCreate = function(req) {
reqs.push(req); reqs.push(req);
}; };

View File

@ -231,16 +231,16 @@ QUnit.test('emulated tracks are always used, except in safari', function(assert)
textTracks: [] textTracks: []
}; };
browser.IS_ANY_SAFARI = false; browser.stub_IS_ANY_SAFARI(false);
assert.ok(!Html5.supportsNativeTextTracks(), 'Html5 does not support native text tracks, in non-safari'); assert.ok(!Html5.supportsNativeTextTracks(), 'Html5 does not support native text tracks, in non-safari');
browser.IS_ANY_SAFARI = true; browser.stub_IS_ANY_SAFARI(true);
assert.ok(Html5.supportsNativeTextTracks(), 'Html5 does support native text tracks in safari'); assert.ok(Html5.supportsNativeTextTracks(), 'Html5 does support native text tracks in safari');
Html5.TEST_VID = oldTestVid; Html5.TEST_VID = oldTestVid;
browser.IS_ANY_SAFARI = oldIsAnySafari; browser.stub_IS_ANY_SAFARI(oldIsAnySafari);
}); });
QUnit.test('when switching techs, we should not get a new text track', function(assert) { QUnit.test('when switching techs, we should not get a new text track', function(assert) {

View File

@ -2,8 +2,6 @@
import document from 'global/document'; import document from 'global/document';
import window from 'global/window'; import window from 'global/window';
import * as Url from '../../../src/js/utils/url.js'; import * as Url from '../../../src/js/utils/url.js';
import proxyquireify from 'proxyquireify';
const proxyquire = proxyquireify(require);
QUnit.module('url'); QUnit.module('url');
QUnit.test('should parse the details of a url correctly', function(assert) { QUnit.test('should parse the details of a url correctly', function(assert) {
@ -75,28 +73,24 @@ QUnit.test('should get the file extension of the passed path', function(assert)
// isCrossOrigin tests // isCrossOrigin tests
QUnit.test('isCrossOrigin can identify cross origin urls', function(assert) { QUnit.test('isCrossOrigin can identify cross origin urls', function(assert) {
const win = {
location: {}
};
const Url_ = proxyquire('../../../src/js/utils/url.js', {
'global/window': win
});
win.location.protocol = window.location.protocol; assert.ok(!Url.isCrossOrigin(`http://${window.location.host}/example.vtt`), 'http://google.com from http://google.com is not cross origin');
win.location.host = window.location.host; assert.ok(Url.isCrossOrigin(`https://${window.location.host}/example.vtt`), 'https://google.com from http://google.com is cross origin');
assert.ok(!Url_.isCrossOrigin(`http://${win.location.host}/example.vtt`), 'http://google.com from http://google.com is not cross origin'); assert.ok(!Url.isCrossOrigin(`//${window.location.host}/example.vtt`), '//google.com from http://google.com is not cross origin');
assert.ok(Url_.isCrossOrigin(`https://${win.location.host}/example.vtt`), 'https://google.com from http://google.com is cross origin'); assert.ok(Url.isCrossOrigin('http://example.com/example.vtt'), 'http://example.com from http://google.com is cross origin');
assert.ok(!Url_.isCrossOrigin(`//${win.location.host}/example.vtt`), '//google.com from http://google.com is not cross origin'); assert.ok(Url.isCrossOrigin('https://example.com/example.vtt'), 'https://example.com from http://google.com is cross origin');
assert.ok(Url_.isCrossOrigin('http://example.com/example.vtt'), 'http://example.com from http://google.com is cross origin'); assert.ok(Url.isCrossOrigin('//example.com/example.vtt'), '//example.com from http://google.com is cross origin');
assert.ok(Url_.isCrossOrigin('https://example.com/example.vtt'), 'https://example.com from http://google.com is cross origin');
assert.ok(Url_.isCrossOrigin('//example.com/example.vtt'), '//example.com from http://google.com is cross origin');
// we cannot test that relative urls work on https, though // we cannot test that relative urls work on https, though
assert.ok(!Url_.isCrossOrigin('example.vtt'), 'relative url is not cross origin'); assert.ok(!Url.isCrossOrigin('example.vtt'), 'relative url is not cross origin');
win.location.protocol = 'https:'; const location = {
win.location.host = 'google.com'; protocol: 'https:',
assert.ok(Url_.isCrossOrigin('http://google.com/example.vtt'), 'http://google.com from https://google.com is cross origin'); host: 'google.com'
assert.ok(Url_.isCrossOrigin('http://example.com/example.vtt'), 'http://example.com from https://google.com is cross origin'); };
assert.ok(Url_.isCrossOrigin('https://example.com/example.vtt'), 'https://example.com from https://google.com is cross origin');
assert.ok(Url_.isCrossOrigin('//example.com/example.vtt'), '//example.com from https://google.com is cross origin'); assert.ok(!Url.isCrossOrigin('https://google.com/example.vtt', location), 'http://google.com from https://google.com is not cross origin');
assert.ok(Url.isCrossOrigin('http://google.com/example.vtt', location), 'http://google.com from https://google.com is cross origin');
assert.ok(Url.isCrossOrigin('http://example.com/example.vtt', location), 'http://example.com from https://google.com is cross origin');
assert.ok(Url.isCrossOrigin('https://example.com/example.vtt', location), 'https://example.com from https://google.com is cross origin');
assert.ok(Url.isCrossOrigin('//example.com/example.vtt', location), '//example.com from https://google.com is cross origin');
}); });

View File

@ -227,13 +227,6 @@ QUnit.test('should expose options and players properties for backward-compatibil
}); });
QUnit.test('should expose DOM functions', function(assert) { QUnit.test('should expose DOM functions', function(assert) {
const origWarnLog = log.warn;
const warnLogs = [];
log.warn = (args) => {
warnLogs.push(args);
};
const methods = [ const methods = [
'isEl', 'isEl',
'isTextNode', 'isTextNode',
@ -252,24 +245,7 @@ QUnit.test('should expose DOM functions', function(assert) {
methods.forEach(name => { methods.forEach(name => {
assert.strictEqual(typeof videojs[name], 'function', `function videojs.${name}`); assert.strictEqual(typeof videojs[name], 'function', `function videojs.${name}`);
assert.strictEqual(typeof Dom[name], 'function', `Dom.${name} function exists`); assert.strictEqual(typeof Dom[name], 'function', `Dom.${name} function exists`);
const oldMethod = Dom[name];
let domCalls = 0;
Dom[name] = () => domCalls++;
videojs[name]();
assert.equal(domCalls, 1, `Dom.${name} was called when videojs.${name} is run.`);
assert.equal(warnLogs.length, 1, `videojs.${name} logs a deprecation warning`);
// reset
warnLogs.length = 0;
Dom[name] = oldMethod;
}); });
// reset log
log.warn = origWarnLog;
}); });
QUnit.test('ingest player div if data-vjs-player attribute is present on video parentNode', function(assert) { QUnit.test('ingest player div if data-vjs-player attribute is present on video parentNode', function(assert) {

View File

@ -18,35 +18,35 @@ QUnit.test('create a real player and dispose', function(assert) {
// see https://github.com/videojs/video.js/issues/5858 // see https://github.com/videojs/video.js/issues/5858
old.bind = Fn.bind; old.bind = Fn.bind;
Fn.bind = function(context, fn, uid) { Fn.stub_bind(function(context, fn, uid) {
const retval = old.bind(context, fn, uid); const retval = old.bind(context, fn, uid);
retval.og_ = fn.og_ || fn; retval.og_ = fn.og_ || fn;
retval.cx_ = fn.cx_ || context; retval.cx_ = fn.cx_ || context;
return retval; return retval;
}; });
old.throttle = Fn.throttle; old.throttle = Fn.throttle;
Fn.throttle = function(fn, wait) { Fn.stub_throttle(function(fn, wait) {
const retval = old.throttle(fn, wait); const retval = old.throttle(fn, wait);
retval.og_ = fn.og_ || fn; retval.og_ = fn.og_ || fn;
retval.cx_ = fn.cx_; retval.cx_ = fn.cx_;
return retval; return retval;
}; });
old.debounce = Fn.debounce; old.debounce = Fn.debounce;
Fn.debounce = function(func, wait, immediate, context = window) { Fn.stub_debounce(function(func, wait, immediate, context = window) {
const retval = old.debounce(func, wait, immediate, context); const retval = old.debounce(func, wait, immediate, context);
retval.og_ = func.og_ || func; retval.og_ = func.og_ || func;
retval.cx_ = func.cx_; retval.cx_ = func.cx_;
return retval; return retval;
}; });
// TODO: use a local source rather than a remote one // TODO: use a local source rather than a remote one
fixture.innerHTML = ` fixture.innerHTML = `
@ -77,7 +77,7 @@ QUnit.test('create a real player and dispose', function(assert) {
player.dispose(); player.dispose();
Object.keys(old).forEach(function(k) { Object.keys(old).forEach(function(k) {
Fn[k] = old[k]; Fn[`stub_${k}`](old[k]);
}); });
done(); done();
}, true); }, true);