diff --git a/.circleci/config.yml b/.circleci/config.yml index e20b3a8e..e2bce283 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,6 +1,9 @@ version: 2.1 executors: + node: + docker: + - image: circleci/node:10 firefox: docker: - image: circleci/node:10 @@ -44,10 +47,19 @@ commands: - .yarn - .pnp.js + screenshot: + parameters: + flags: + type: string + default: "" + steps: + - run: + name: Verify screenshots and generate diffs and new screenshots + command: yarn node dockers/screenshotter/screenshotter.js -b $CIRCLE_JOB --verify --diff --new << parameters.flags >> + jobs: test: - docker: - - image: circleci/node:10 + executor: node steps: - run: name: Check whether the build is running on the main repository @@ -80,6 +92,9 @@ jobs: parameters: browser: type: executor + browserstack: + type: string + default: "" executor: << parameters.browser >> steps: - checkout_repo @@ -87,9 +102,17 @@ jobs: filter: '^docs/|^static/|^website/|^LICENSE|\.md$' - install_dependencies - - run: - name: Verify screenshots and generate diffs and new screenshots - command: yarn node dockers/screenshotter/screenshotter.js --selenium-ip localhost -b $CIRCLE_JOB --verify --diff --new + - when: + condition: << parameters.browserstack >> + steps: + - screenshot: + flags: --browserstack --selenium-capabilities '<< parameters.browserstack >>' + - unless: + condition: << parameters.browserstack >> + steps: + - screenshot: + flags: --selenium-ip localhost + - store_artifacts: path: test/screenshotter/new destination: new @@ -107,3 +130,17 @@ workflows: - screenshotter: name: chrome browser: chrome + - screenshotter: + name: safari + browser: node + browserstack: | + { + "browserName": "Safari", + "browser_version": "13.1", + "os": "OS X", + "os_version": "Catalina" + } + filters: + branches: + # Forked pull requests don't have access to Browserstack credentials + ignore: /pull\/[0-9]+/ diff --git a/.gitignore b/.gitignore index 6c09b9a4..bcc7a2cc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,7 @@ katex.tar.gz katex.zip node_modules -npm-debug.log -debug.log +*.log last.png diff.png /.npm-install.stamp diff --git a/dockers/screenshotter/screenshotter.js b/dockers/screenshotter/screenshotter.js index f6a9f40a..21074eb9 100644 --- a/dockers/screenshotter/screenshotter.js +++ b/dockers/screenshotter/screenshotter.js @@ -15,6 +15,8 @@ const istanbulLibCoverage = require('istanbul-lib-coverage'); const istanbulLibReport = require('istanbul-lib-report'); const istanbulReports = require('istanbul-reports'); +const browserstack = require('browserstack-local'); + const webpack = require('webpack'); const WebpackDevServer = require("webpack-dev-server"); const webpackConfig = require("../../webpack.dev")[0]; @@ -59,6 +61,9 @@ const opts = require("commander") "Retry this many times before reporting failure", 5, parseInt) .option("--wait ", "Wait this many seconds between page load and screenshot", parseFloat) + .option("--browserstack", "Use Browserstack. The username and access key" + + " should be set as enviroment variable BROWSERSTACK_USER and" + + " BROWSERSTACK_ACCESS_KEY") .parse(process.argv); let listOfCases; @@ -81,6 +86,24 @@ let katexURL = opts.katexUrl; let katexIP = opts.katexIp; let katexPort = opts.katexPort; +let bsLocal; +if (opts.browserstack) { + // https://www.browserstack.com/automate/node + if (!seleniumURL) { + seleniumURL = "http://hub-cloud.browserstack.com/wd/hub"; + } + // https://www.browserstack.com/local-testing/automate#test-localhost-websites + if (!katexIP && opts.browser === "safari") { + katexIP = "bs-local.com"; + } + opts.seleniumCapabilities = Object.assign({ + resolution: "1280x1024", + "browserstack.user": process.env.BROWSERSTACK_USER, + "browserstack.key": process.env.BROWSERSTACK_ACCESS_KEY, + "browserstack.local": true, + }, opts.seleniumCapabilities); +} + ////////////////////////////////////////////////////////////////////// // Work out connection to selenium docker container @@ -188,7 +211,7 @@ function startServer() { devServer = wds; katexPort = port; attempts = 0; - process.nextTick(tryConnect); + process.nextTick(opts.browserstack ? startBrowserstackLocal : tryConnect); }); server.on("error", function(err) { if (devServer !== null) { // error after we started listening @@ -201,6 +224,21 @@ function startServer() { }); } +// Start Browserstack Local connection +function startBrowserstackLocal() { + // unique identifier for the session + const localIdentifier = process.env.CIRCLE_BUILD_NUM || "p" + katexPort; + opts.seleniumCapabilities["browserstack.localIdentifier"] = localIdentifier; + + bsLocal = new browserstack.Local(); + bsLocal.start({localIdentifier}, function(err) { + if (err) { + throw err; + } + process.nextTick(tryConnect); + }); +} + ////////////////////////////////////////////////////////////////////// // Wait for container to become ready @@ -546,7 +584,13 @@ function takeScreenshot(key) { function done() { // devServer.close(cb) will take too long. driver.quit().then(() => { - process.exit(exitStatus); + if (bsLocal) { + bsLocal.stop(() => { + process.exit(exitStatus); + }); + } else { + process.exit(exitStatus); + } }); } } diff --git a/dockers/screenshotter/screenshotter.sh b/dockers/screenshotter/screenshotter.sh index 52e023a6..d577221e 100755 --- a/dockers/screenshotter/screenshotter.sh +++ b/dockers/screenshotter/screenshotter.sh @@ -17,7 +17,7 @@ cleanup() { container= trap cleanup EXIT status=0 -for browserTag in firefox:2.48.2 chrome:2.48.2; do +for browserTag in firefox:3.141.59-20200525 chrome:3.141.59-20200525; do browser=${browserTag%:*} image=selenium/standalone-${browserTag} echo "Starting container for ${image}" @@ -34,4 +34,22 @@ for browserTag in firefox:2.48.2 chrome:2.48.2; do echo "${res} taking screenshots, stopping and removing ${container:0:12}" cleanup done + +if [[ $BROWSERSTACK_USER ]]; then + echo "Creating screenshots for Safari..." + if yarn node "$(dirname "$0")"/screenshotter.js \ + --browser=safari --browserstack --selenium-capabilities '{ + "browserName": "Safari", + "browser_version": "13.1", + "os": "OS X", + "os_version": "Catalina" + }' "$@"; then + res=Done + else + res=Failed + status=1 + fi + echo "${res} taking screenshots" +fi + exit ${status} diff --git a/package.json b/package.json index 54792c65..f965889d 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "babel-plugin-version-inline": "^1.0.0", "benchmark": "^2.1.4", "browserslist": "^4.13.0", + "browserstack-local": "^1.4.5", "caniuse-lite": "^1.0.30001102", "codecov": "^3.7.1", "css-loader": "^4.0.0", diff --git a/test/screenshotter/images/Accents-safari.png b/test/screenshotter/images/Accents-safari.png new file mode 100644 index 00000000..5ec7df84 Binary files /dev/null and b/test/screenshotter/images/Accents-safari.png differ diff --git a/test/screenshotter/images/AccentsText-safari.png b/test/screenshotter/images/AccentsText-safari.png new file mode 100644 index 00000000..36b676b7 Binary files /dev/null and b/test/screenshotter/images/AccentsText-safari.png differ diff --git a/test/screenshotter/images/Align-safari.png b/test/screenshotter/images/Align-safari.png new file mode 100644 index 00000000..f8a5c59d Binary files /dev/null and b/test/screenshotter/images/Align-safari.png differ diff --git a/test/screenshotter/images/Aligned-safari.png b/test/screenshotter/images/Aligned-safari.png new file mode 100644 index 00000000..8d3f3c78 Binary files /dev/null and b/test/screenshotter/images/Aligned-safari.png differ diff --git a/test/screenshotter/images/Alignedat-safari.png b/test/screenshotter/images/Alignedat-safari.png new file mode 100644 index 00000000..db5dcb6d Binary files /dev/null and b/test/screenshotter/images/Alignedat-safari.png differ diff --git a/test/screenshotter/images/ArrayMode-safari.png b/test/screenshotter/images/ArrayMode-safari.png new file mode 100644 index 00000000..2957cce0 Binary files /dev/null and b/test/screenshotter/images/ArrayMode-safari.png differ diff --git a/test/screenshotter/images/ArrayRemoveEmptyLine-safari.png b/test/screenshotter/images/ArrayRemoveEmptyLine-safari.png new file mode 100644 index 00000000..7a55b5a2 Binary files /dev/null and b/test/screenshotter/images/ArrayRemoveEmptyLine-safari.png differ diff --git a/test/screenshotter/images/ArrayType-safari.png b/test/screenshotter/images/ArrayType-safari.png new file mode 100644 index 00000000..b0b11996 Binary files /dev/null and b/test/screenshotter/images/ArrayType-safari.png differ diff --git a/test/screenshotter/images/Arrays-safari.png b/test/screenshotter/images/Arrays-safari.png new file mode 100644 index 00000000..e3496281 Binary files /dev/null and b/test/screenshotter/images/Arrays-safari.png differ diff --git a/test/screenshotter/images/Baseline-safari.png b/test/screenshotter/images/Baseline-safari.png new file mode 100644 index 00000000..67f4133e Binary files /dev/null and b/test/screenshotter/images/Baseline-safari.png differ diff --git a/test/screenshotter/images/BasicTest-safari.png b/test/screenshotter/images/BasicTest-safari.png new file mode 100644 index 00000000..d7ac7c4a Binary files /dev/null and b/test/screenshotter/images/BasicTest-safari.png differ diff --git a/test/screenshotter/images/BinCancellation-safari.png b/test/screenshotter/images/BinCancellation-safari.png new file mode 100644 index 00000000..d8311972 Binary files /dev/null and b/test/screenshotter/images/BinCancellation-safari.png differ diff --git a/test/screenshotter/images/BinomTest-safari.png b/test/screenshotter/images/BinomTest-safari.png new file mode 100644 index 00000000..e31e4716 Binary files /dev/null and b/test/screenshotter/images/BinomTest-safari.png differ diff --git a/test/screenshotter/images/BoldSpacing-safari.png b/test/screenshotter/images/BoldSpacing-safari.png new file mode 100644 index 00000000..76012d49 Binary files /dev/null and b/test/screenshotter/images/BoldSpacing-safari.png differ diff --git a/test/screenshotter/images/BoldSymbol-safari.png b/test/screenshotter/images/BoldSymbol-safari.png new file mode 100644 index 00000000..83f2bc30 Binary files /dev/null and b/test/screenshotter/images/BoldSymbol-safari.png differ diff --git a/test/screenshotter/images/Boxed-safari.png b/test/screenshotter/images/Boxed-safari.png new file mode 100644 index 00000000..3c0c5d05 Binary files /dev/null and b/test/screenshotter/images/Boxed-safari.png differ diff --git a/test/screenshotter/images/Cases-safari.png b/test/screenshotter/images/Cases-safari.png new file mode 100644 index 00000000..7f61b0c0 Binary files /dev/null and b/test/screenshotter/images/Cases-safari.png differ diff --git a/test/screenshotter/images/ColorImplicit-safari.png b/test/screenshotter/images/ColorImplicit-safari.png new file mode 100644 index 00000000..3cf5bfca Binary files /dev/null and b/test/screenshotter/images/ColorImplicit-safari.png differ diff --git a/test/screenshotter/images/ColorSpacing-safari.png b/test/screenshotter/images/ColorSpacing-safari.png new file mode 100644 index 00000000..284e078c Binary files /dev/null and b/test/screenshotter/images/ColorSpacing-safari.png differ diff --git a/test/screenshotter/images/Colorbox-safari.png b/test/screenshotter/images/Colorbox-safari.png new file mode 100644 index 00000000..11bbb8be Binary files /dev/null and b/test/screenshotter/images/Colorbox-safari.png differ diff --git a/test/screenshotter/images/Colors-safari.png b/test/screenshotter/images/Colors-safari.png new file mode 100644 index 00000000..3634c483 Binary files /dev/null and b/test/screenshotter/images/Colors-safari.png differ diff --git a/test/screenshotter/images/DashesAndQuotes-safari.png b/test/screenshotter/images/DashesAndQuotes-safari.png new file mode 100644 index 00000000..e6d715d4 Binary files /dev/null and b/test/screenshotter/images/DashesAndQuotes-safari.png differ diff --git a/test/screenshotter/images/DeepFontSizing-safari.png b/test/screenshotter/images/DeepFontSizing-safari.png new file mode 100644 index 00000000..1791f344 Binary files /dev/null and b/test/screenshotter/images/DeepFontSizing-safari.png differ diff --git a/test/screenshotter/images/DelimiterSizing-safari.png b/test/screenshotter/images/DelimiterSizing-safari.png new file mode 100644 index 00000000..97955997 Binary files /dev/null and b/test/screenshotter/images/DelimiterSizing-safari.png differ diff --git a/test/screenshotter/images/DisplayMode-safari.png b/test/screenshotter/images/DisplayMode-safari.png new file mode 100644 index 00000000..7ab26f2d Binary files /dev/null and b/test/screenshotter/images/DisplayMode-safari.png differ diff --git a/test/screenshotter/images/DisplayStyle-safari.png b/test/screenshotter/images/DisplayStyle-safari.png new file mode 100644 index 00000000..7a5c2e44 Binary files /dev/null and b/test/screenshotter/images/DisplayStyle-safari.png differ diff --git a/test/screenshotter/images/Dots-safari.png b/test/screenshotter/images/Dots-safari.png new file mode 100644 index 00000000..b7202dbc Binary files /dev/null and b/test/screenshotter/images/Dots-safari.png differ diff --git a/test/screenshotter/images/Equation-safari.png b/test/screenshotter/images/Equation-safari.png new file mode 100644 index 00000000..e436b566 Binary files /dev/null and b/test/screenshotter/images/Equation-safari.png differ diff --git a/test/screenshotter/images/Exponents-safari.png b/test/screenshotter/images/Exponents-safari.png new file mode 100644 index 00000000..91e198e1 Binary files /dev/null and b/test/screenshotter/images/Exponents-safari.png differ diff --git a/test/screenshotter/images/ExtensibleArrows-safari.png b/test/screenshotter/images/ExtensibleArrows-safari.png new file mode 100644 index 00000000..00e9d20d Binary files /dev/null and b/test/screenshotter/images/ExtensibleArrows-safari.png differ diff --git a/test/screenshotter/images/FractionTest-safari.png b/test/screenshotter/images/FractionTest-safari.png new file mode 100644 index 00000000..82acf70e Binary files /dev/null and b/test/screenshotter/images/FractionTest-safari.png differ diff --git a/test/screenshotter/images/Functions-safari.png b/test/screenshotter/images/Functions-safari.png new file mode 100644 index 00000000..5fb33330 Binary files /dev/null and b/test/screenshotter/images/Functions-safari.png differ diff --git a/test/screenshotter/images/Gather-safari.png b/test/screenshotter/images/Gather-safari.png new file mode 100644 index 00000000..8e4478d9 Binary files /dev/null and b/test/screenshotter/images/Gather-safari.png differ diff --git a/test/screenshotter/images/Gathered-safari.png b/test/screenshotter/images/Gathered-safari.png new file mode 100644 index 00000000..b6dabdc3 Binary files /dev/null and b/test/screenshotter/images/Gathered-safari.png differ diff --git a/test/screenshotter/images/GreekLetters-safari.png b/test/screenshotter/images/GreekLetters-safari.png new file mode 100644 index 00000000..194df4eb Binary files /dev/null and b/test/screenshotter/images/GreekLetters-safari.png differ diff --git a/test/screenshotter/images/GreekUnicode-safari.png b/test/screenshotter/images/GreekUnicode-safari.png new file mode 100644 index 00000000..4fb5c164 Binary files /dev/null and b/test/screenshotter/images/GreekUnicode-safari.png differ diff --git a/test/screenshotter/images/GroupMacros-safari.png b/test/screenshotter/images/GroupMacros-safari.png new file mode 100644 index 00000000..1258d06a Binary files /dev/null and b/test/screenshotter/images/GroupMacros-safari.png differ diff --git a/test/screenshotter/images/HTML-safari.png b/test/screenshotter/images/HTML-safari.png new file mode 100644 index 00000000..eb0365a1 Binary files /dev/null and b/test/screenshotter/images/HTML-safari.png differ diff --git a/test/screenshotter/images/HorizontalBraces-safari.png b/test/screenshotter/images/HorizontalBraces-safari.png new file mode 100644 index 00000000..0e838df0 Binary files /dev/null and b/test/screenshotter/images/HorizontalBraces-safari.png differ diff --git a/test/screenshotter/images/Includegraphics-safari.png b/test/screenshotter/images/Includegraphics-safari.png new file mode 100644 index 00000000..14d19b65 Binary files /dev/null and b/test/screenshotter/images/Includegraphics-safari.png differ diff --git a/test/screenshotter/images/Integrands-safari.png b/test/screenshotter/images/Integrands-safari.png new file mode 100644 index 00000000..ab5673f2 Binary files /dev/null and b/test/screenshotter/images/Integrands-safari.png differ diff --git a/test/screenshotter/images/KaTeX-safari.png b/test/screenshotter/images/KaTeX-safari.png new file mode 100644 index 00000000..1e691990 Binary files /dev/null and b/test/screenshotter/images/KaTeX-safari.png differ diff --git a/test/screenshotter/images/Kern-safari.png b/test/screenshotter/images/Kern-safari.png new file mode 100644 index 00000000..4c3bf86f Binary files /dev/null and b/test/screenshotter/images/Kern-safari.png differ diff --git a/test/screenshotter/images/LaTeX-safari.png b/test/screenshotter/images/LaTeX-safari.png new file mode 100644 index 00000000..ef82fd16 Binary files /dev/null and b/test/screenshotter/images/LaTeX-safari.png differ diff --git a/test/screenshotter/images/Lap-safari.png b/test/screenshotter/images/Lap-safari.png new file mode 100644 index 00000000..0bfe6dc7 Binary files /dev/null and b/test/screenshotter/images/Lap-safari.png differ diff --git a/test/screenshotter/images/LargeRuleNumerator-safari.png b/test/screenshotter/images/LargeRuleNumerator-safari.png new file mode 100644 index 00000000..d8d7a6bd Binary files /dev/null and b/test/screenshotter/images/LargeRuleNumerator-safari.png differ diff --git a/test/screenshotter/images/LeftRight-safari.png b/test/screenshotter/images/LeftRight-safari.png new file mode 100644 index 00000000..0fb14e01 Binary files /dev/null and b/test/screenshotter/images/LeftRight-safari.png differ diff --git a/test/screenshotter/images/LeftRightListStyling-safari.png b/test/screenshotter/images/LeftRightListStyling-safari.png new file mode 100644 index 00000000..9f87534a Binary files /dev/null and b/test/screenshotter/images/LeftRightListStyling-safari.png differ diff --git a/test/screenshotter/images/LeftRightMiddle-safari.png b/test/screenshotter/images/LeftRightMiddle-safari.png new file mode 100644 index 00000000..124f852f Binary files /dev/null and b/test/screenshotter/images/LeftRightMiddle-safari.png differ diff --git a/test/screenshotter/images/LeftRightStyleSizing-safari.png b/test/screenshotter/images/LeftRightStyleSizing-safari.png new file mode 100644 index 00000000..51e9e607 Binary files /dev/null and b/test/screenshotter/images/LeftRightStyleSizing-safari.png differ diff --git a/test/screenshotter/images/LimitControls-safari.png b/test/screenshotter/images/LimitControls-safari.png new file mode 100644 index 00000000..1cd743e2 Binary files /dev/null and b/test/screenshotter/images/LimitControls-safari.png differ diff --git a/test/screenshotter/images/LineBreak-safari.png b/test/screenshotter/images/LineBreak-safari.png new file mode 100644 index 00000000..5ed50193 Binary files /dev/null and b/test/screenshotter/images/LineBreak-safari.png differ diff --git a/test/screenshotter/images/LowerAccent-safari.png b/test/screenshotter/images/LowerAccent-safari.png new file mode 100644 index 00000000..2dc0a319 Binary files /dev/null and b/test/screenshotter/images/LowerAccent-safari.png differ diff --git a/test/screenshotter/images/MathAtom-safari.png b/test/screenshotter/images/MathAtom-safari.png new file mode 100644 index 00000000..ec1e3a9d Binary files /dev/null and b/test/screenshotter/images/MathAtom-safari.png differ diff --git a/test/screenshotter/images/MathAtom2-safari.png b/test/screenshotter/images/MathAtom2-safari.png new file mode 100644 index 00000000..03d9143b Binary files /dev/null and b/test/screenshotter/images/MathAtom2-safari.png differ diff --git a/test/screenshotter/images/MathBb-safari.png b/test/screenshotter/images/MathBb-safari.png new file mode 100644 index 00000000..d7b51187 Binary files /dev/null and b/test/screenshotter/images/MathBb-safari.png differ diff --git a/test/screenshotter/images/MathBf-safari.png b/test/screenshotter/images/MathBf-safari.png new file mode 100644 index 00000000..b6db72ad Binary files /dev/null and b/test/screenshotter/images/MathBf-safari.png differ diff --git a/test/screenshotter/images/MathCal-safari.png b/test/screenshotter/images/MathCal-safari.png new file mode 100644 index 00000000..cdf5d551 Binary files /dev/null and b/test/screenshotter/images/MathCal-safari.png differ diff --git a/test/screenshotter/images/MathChoice-safari.png b/test/screenshotter/images/MathChoice-safari.png new file mode 100644 index 00000000..9b17b42f Binary files /dev/null and b/test/screenshotter/images/MathChoice-safari.png differ diff --git a/test/screenshotter/images/MathDefaultFonts-safari.png b/test/screenshotter/images/MathDefaultFonts-safari.png new file mode 100644 index 00000000..d99a19b4 Binary files /dev/null and b/test/screenshotter/images/MathDefaultFonts-safari.png differ diff --git a/test/screenshotter/images/MathFrak-safari.png b/test/screenshotter/images/MathFrak-safari.png new file mode 100644 index 00000000..13dce65a Binary files /dev/null and b/test/screenshotter/images/MathFrak-safari.png differ diff --git a/test/screenshotter/images/MathIt-safari.png b/test/screenshotter/images/MathIt-safari.png new file mode 100644 index 00000000..cf8e15ab Binary files /dev/null and b/test/screenshotter/images/MathIt-safari.png differ diff --git a/test/screenshotter/images/MathNormal-safari.png b/test/screenshotter/images/MathNormal-safari.png new file mode 100644 index 00000000..60df9c25 Binary files /dev/null and b/test/screenshotter/images/MathNormal-safari.png differ diff --git a/test/screenshotter/images/MathOp-safari.png b/test/screenshotter/images/MathOp-safari.png new file mode 100644 index 00000000..11da8c29 Binary files /dev/null and b/test/screenshotter/images/MathOp-safari.png differ diff --git a/test/screenshotter/images/MathRm-safari.png b/test/screenshotter/images/MathRm-safari.png new file mode 100644 index 00000000..de6117b2 Binary files /dev/null and b/test/screenshotter/images/MathRm-safari.png differ diff --git a/test/screenshotter/images/MathScr-safari.png b/test/screenshotter/images/MathScr-safari.png new file mode 100644 index 00000000..5d938f16 Binary files /dev/null and b/test/screenshotter/images/MathScr-safari.png differ diff --git a/test/screenshotter/images/MathSf-safari.png b/test/screenshotter/images/MathSf-safari.png new file mode 100644 index 00000000..0f8c464f Binary files /dev/null and b/test/screenshotter/images/MathSf-safari.png differ diff --git a/test/screenshotter/images/MathTt-safari.png b/test/screenshotter/images/MathTt-safari.png new file mode 100644 index 00000000..6b2c2756 Binary files /dev/null and b/test/screenshotter/images/MathTt-safari.png differ diff --git a/test/screenshotter/images/Mod-safari.png b/test/screenshotter/images/Mod-safari.png new file mode 100644 index 00000000..393226de Binary files /dev/null and b/test/screenshotter/images/Mod-safari.png differ diff --git a/test/screenshotter/images/ModScript-safari.png b/test/screenshotter/images/ModScript-safari.png new file mode 100644 index 00000000..a896427b Binary files /dev/null and b/test/screenshotter/images/ModScript-safari.png differ diff --git a/test/screenshotter/images/ModSpacing-safari.png b/test/screenshotter/images/ModSpacing-safari.png new file mode 100644 index 00000000..88ffb6cc Binary files /dev/null and b/test/screenshotter/images/ModSpacing-safari.png differ diff --git a/test/screenshotter/images/NegativeSpace-safari.png b/test/screenshotter/images/NegativeSpace-safari.png new file mode 100644 index 00000000..a9767240 Binary files /dev/null and b/test/screenshotter/images/NegativeSpace-safari.png differ diff --git a/test/screenshotter/images/NegativeSpaceBetweenRel-safari.png b/test/screenshotter/images/NegativeSpaceBetweenRel-safari.png new file mode 100644 index 00000000..288b62a3 Binary files /dev/null and b/test/screenshotter/images/NegativeSpaceBetweenRel-safari.png differ diff --git a/test/screenshotter/images/NestedFractions-safari.png b/test/screenshotter/images/NestedFractions-safari.png new file mode 100644 index 00000000..a0e54c49 Binary files /dev/null and b/test/screenshotter/images/NestedFractions-safari.png differ diff --git a/test/screenshotter/images/NewLine-safari.png b/test/screenshotter/images/NewLine-safari.png new file mode 100644 index 00000000..40b1454a Binary files /dev/null and b/test/screenshotter/images/NewLine-safari.png differ diff --git a/test/screenshotter/images/Not-safari.png b/test/screenshotter/images/Not-safari.png new file mode 100644 index 00000000..f2941787 Binary files /dev/null and b/test/screenshotter/images/Not-safari.png differ diff --git a/test/screenshotter/images/NullDelimiterInteraction-safari.png b/test/screenshotter/images/NullDelimiterInteraction-safari.png new file mode 100644 index 00000000..afce9a74 Binary files /dev/null and b/test/screenshotter/images/NullDelimiterInteraction-safari.png differ diff --git a/test/screenshotter/images/OldFont-safari.png b/test/screenshotter/images/OldFont-safari.png new file mode 100644 index 00000000..2fe255ef Binary files /dev/null and b/test/screenshotter/images/OldFont-safari.png differ diff --git a/test/screenshotter/images/OpLimits-safari.png b/test/screenshotter/images/OpLimits-safari.png new file mode 100644 index 00000000..eb19a5df Binary files /dev/null and b/test/screenshotter/images/OpLimits-safari.png differ diff --git a/test/screenshotter/images/OperatorName-safari.png b/test/screenshotter/images/OperatorName-safari.png new file mode 100644 index 00000000..60712577 Binary files /dev/null and b/test/screenshotter/images/OperatorName-safari.png differ diff --git a/test/screenshotter/images/OverUnderline-safari.png b/test/screenshotter/images/OverUnderline-safari.png new file mode 100644 index 00000000..cb08192c Binary files /dev/null and b/test/screenshotter/images/OverUnderline-safari.png differ diff --git a/test/screenshotter/images/OverUnderset-safari.png b/test/screenshotter/images/OverUnderset-safari.png new file mode 100644 index 00000000..97999d61 Binary files /dev/null and b/test/screenshotter/images/OverUnderset-safari.png differ diff --git a/test/screenshotter/images/Phantom-safari.png b/test/screenshotter/images/Phantom-safari.png new file mode 100644 index 00000000..a9470ca8 Binary files /dev/null and b/test/screenshotter/images/Phantom-safari.png differ diff --git a/test/screenshotter/images/Pmb-safari.png b/test/screenshotter/images/Pmb-safari.png new file mode 100644 index 00000000..81f984af Binary files /dev/null and b/test/screenshotter/images/Pmb-safari.png differ diff --git a/test/screenshotter/images/PrimeSpacing-safari.png b/test/screenshotter/images/PrimeSpacing-safari.png new file mode 100644 index 00000000..401065eb Binary files /dev/null and b/test/screenshotter/images/PrimeSpacing-safari.png differ diff --git a/test/screenshotter/images/PrimeSuper-safari.png b/test/screenshotter/images/PrimeSuper-safari.png new file mode 100644 index 00000000..cb672852 Binary files /dev/null and b/test/screenshotter/images/PrimeSuper-safari.png differ diff --git a/test/screenshotter/images/Raisebox-safari.png b/test/screenshotter/images/Raisebox-safari.png new file mode 100644 index 00000000..24fec33f Binary files /dev/null and b/test/screenshotter/images/Raisebox-safari.png differ diff --git a/test/screenshotter/images/ReactionArrows-safari.png b/test/screenshotter/images/ReactionArrows-safari.png new file mode 100644 index 00000000..2f31063f Binary files /dev/null and b/test/screenshotter/images/ReactionArrows-safari.png differ diff --git a/test/screenshotter/images/RelativeUnits-safari.png b/test/screenshotter/images/RelativeUnits-safari.png new file mode 100644 index 00000000..d093383c Binary files /dev/null and b/test/screenshotter/images/RelativeUnits-safari.png differ diff --git a/test/screenshotter/images/RlapBug-safari.png b/test/screenshotter/images/RlapBug-safari.png new file mode 100644 index 00000000..dbc613bb Binary files /dev/null and b/test/screenshotter/images/RlapBug-safari.png differ diff --git a/test/screenshotter/images/Rule-safari.png b/test/screenshotter/images/Rule-safari.png new file mode 100644 index 00000000..94ce6890 Binary files /dev/null and b/test/screenshotter/images/Rule-safari.png differ diff --git a/test/screenshotter/images/Sizing-safari.png b/test/screenshotter/images/Sizing-safari.png new file mode 100644 index 00000000..248d460e Binary files /dev/null and b/test/screenshotter/images/Sizing-safari.png differ diff --git a/test/screenshotter/images/SizingBaseline-safari.png b/test/screenshotter/images/SizingBaseline-safari.png new file mode 100644 index 00000000..ab081d01 Binary files /dev/null and b/test/screenshotter/images/SizingBaseline-safari.png differ diff --git a/test/screenshotter/images/Smash-safari.png b/test/screenshotter/images/Smash-safari.png new file mode 100644 index 00000000..17145c76 Binary files /dev/null and b/test/screenshotter/images/Smash-safari.png differ diff --git a/test/screenshotter/images/Spacing-safari.png b/test/screenshotter/images/Spacing-safari.png new file mode 100644 index 00000000..b7f8f665 Binary files /dev/null and b/test/screenshotter/images/Spacing-safari.png differ diff --git a/test/screenshotter/images/Sqrt-safari.png b/test/screenshotter/images/Sqrt-safari.png new file mode 100644 index 00000000..40a39d38 Binary files /dev/null and b/test/screenshotter/images/Sqrt-safari.png differ diff --git a/test/screenshotter/images/SqrtRoot-safari.png b/test/screenshotter/images/SqrtRoot-safari.png new file mode 100644 index 00000000..d58e5b47 Binary files /dev/null and b/test/screenshotter/images/SqrtRoot-safari.png differ diff --git a/test/screenshotter/images/StackRel-safari.png b/test/screenshotter/images/StackRel-safari.png new file mode 100644 index 00000000..bbc94585 Binary files /dev/null and b/test/screenshotter/images/StackRel-safari.png differ diff --git a/test/screenshotter/images/StretchyAccent-safari.png b/test/screenshotter/images/StretchyAccent-safari.png new file mode 100644 index 00000000..84cda110 Binary files /dev/null and b/test/screenshotter/images/StretchyAccent-safari.png differ diff --git a/test/screenshotter/images/StretchyAccentColor-safari.png b/test/screenshotter/images/StretchyAccentColor-safari.png new file mode 100644 index 00000000..e042eb90 Binary files /dev/null and b/test/screenshotter/images/StretchyAccentColor-safari.png differ diff --git a/test/screenshotter/images/StrikeThrough-safari.png b/test/screenshotter/images/StrikeThrough-safari.png new file mode 100644 index 00000000..c91eb10e Binary files /dev/null and b/test/screenshotter/images/StrikeThrough-safari.png differ diff --git a/test/screenshotter/images/StrikeThroughColor-safari.png b/test/screenshotter/images/StrikeThroughColor-safari.png new file mode 100644 index 00000000..09caa232 Binary files /dev/null and b/test/screenshotter/images/StrikeThroughColor-safari.png differ diff --git a/test/screenshotter/images/StyleSpacing-safari.png b/test/screenshotter/images/StyleSpacing-safari.png new file mode 100644 index 00000000..6d4c0ff1 Binary files /dev/null and b/test/screenshotter/images/StyleSpacing-safari.png differ diff --git a/test/screenshotter/images/StyleSwitching-safari.png b/test/screenshotter/images/StyleSwitching-safari.png new file mode 100644 index 00000000..2b23743a Binary files /dev/null and b/test/screenshotter/images/StyleSwitching-safari.png differ diff --git a/test/screenshotter/images/SupSubCharacterBox-safari.png b/test/screenshotter/images/SupSubCharacterBox-safari.png new file mode 100644 index 00000000..8567c8cf Binary files /dev/null and b/test/screenshotter/images/SupSubCharacterBox-safari.png differ diff --git a/test/screenshotter/images/SupSubHorizSpacing-safari.png b/test/screenshotter/images/SupSubHorizSpacing-safari.png new file mode 100644 index 00000000..9c4fbb7c Binary files /dev/null and b/test/screenshotter/images/SupSubHorizSpacing-safari.png differ diff --git a/test/screenshotter/images/SupSubLeftAlignReset-safari.png b/test/screenshotter/images/SupSubLeftAlignReset-safari.png new file mode 100644 index 00000000..74c89b83 Binary files /dev/null and b/test/screenshotter/images/SupSubLeftAlignReset-safari.png differ diff --git a/test/screenshotter/images/SupSubOffsets-safari.png b/test/screenshotter/images/SupSubOffsets-safari.png new file mode 100644 index 00000000..13603221 Binary files /dev/null and b/test/screenshotter/images/SupSubOffsets-safari.png differ diff --git a/test/screenshotter/images/SurrogatePairs-safari.png b/test/screenshotter/images/SurrogatePairs-safari.png new file mode 100644 index 00000000..04668aa7 Binary files /dev/null and b/test/screenshotter/images/SurrogatePairs-safari.png differ diff --git a/test/screenshotter/images/SvgReset-safari.png b/test/screenshotter/images/SvgReset-safari.png new file mode 100644 index 00000000..31cd020c Binary files /dev/null and b/test/screenshotter/images/SvgReset-safari.png differ diff --git a/test/screenshotter/images/Symbols1-safari.png b/test/screenshotter/images/Symbols1-safari.png new file mode 100644 index 00000000..7c9798eb Binary files /dev/null and b/test/screenshotter/images/Symbols1-safari.png differ diff --git a/test/screenshotter/images/Tag-safari.png b/test/screenshotter/images/Tag-safari.png new file mode 100644 index 00000000..585e22a1 Binary files /dev/null and b/test/screenshotter/images/Tag-safari.png differ diff --git a/test/screenshotter/images/Text-safari.png b/test/screenshotter/images/Text-safari.png new file mode 100644 index 00000000..d3e2fbe9 Binary files /dev/null and b/test/screenshotter/images/Text-safari.png differ diff --git a/test/screenshotter/images/TextSpace-safari.png b/test/screenshotter/images/TextSpace-safari.png new file mode 100644 index 00000000..f7d7d129 Binary files /dev/null and b/test/screenshotter/images/TextSpace-safari.png differ diff --git a/test/screenshotter/images/TextStacked-safari.png b/test/screenshotter/images/TextStacked-safari.png new file mode 100644 index 00000000..b700dac7 Binary files /dev/null and b/test/screenshotter/images/TextStacked-safari.png differ diff --git a/test/screenshotter/images/TextWithMath-safari.png b/test/screenshotter/images/TextWithMath-safari.png new file mode 100644 index 00000000..bb9935f3 Binary files /dev/null and b/test/screenshotter/images/TextWithMath-safari.png differ diff --git a/test/screenshotter/images/Unicode-safari.png b/test/screenshotter/images/Unicode-safari.png new file mode 100644 index 00000000..bd084489 Binary files /dev/null and b/test/screenshotter/images/Unicode-safari.png differ diff --git a/test/screenshotter/images/Units-safari.png b/test/screenshotter/images/Units-safari.png new file mode 100644 index 00000000..3d30e932 Binary files /dev/null and b/test/screenshotter/images/Units-safari.png differ diff --git a/test/screenshotter/images/UnsupportedCmds-safari.png b/test/screenshotter/images/UnsupportedCmds-safari.png new file mode 100644 index 00000000..57516fc1 Binary files /dev/null and b/test/screenshotter/images/UnsupportedCmds-safari.png differ diff --git a/test/screenshotter/images/Verb-safari.png b/test/screenshotter/images/Verb-safari.png new file mode 100644 index 00000000..3bbe7866 Binary files /dev/null and b/test/screenshotter/images/Verb-safari.png differ diff --git a/test/screenshotter/images/VerticalSpacing-safari.png b/test/screenshotter/images/VerticalSpacing-safari.png new file mode 100644 index 00000000..a0310a63 Binary files /dev/null and b/test/screenshotter/images/VerticalSpacing-safari.png differ diff --git a/yarn.lock b/yarn.lock index 0435a418..da4e9408 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2939,6 +2939,18 @@ __metadata: languageName: node linkType: hard +"browserstack-local@npm:^1.4.5": + version: 1.4.5 + resolution: "browserstack-local@npm:1.4.5" + dependencies: + https-proxy-agent: ^4.0.0 + is-running: ^2.1.0 + ps-tree: =1.2.0 + temp-fs: ^0.9.9 + checksum: ad58653e3fbead3e8f687aed2d7bd5cfd1ce19fa0c916d073ba34d6cddc5960b7712b771300c051355ee39009388323b0ad39223246e1c69adbdf173e54b81ce + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -4433,7 +4445,7 @@ __metadata: languageName: node linkType: hard -"duplexer@npm:^0.1.1": +"duplexer@npm:^0.1.1, duplexer@npm:~0.1.1": version: 0.1.1 resolution: "duplexer@npm:0.1.1" checksum: cd332f728a580abef8a87b38e129c7425d34b7dcc4e1b596da300bb3309e10ba51848429a0c0d1f134b66cae8c9ffe1371e3718c74a6f57da2a544a589b21216 @@ -4869,6 +4881,21 @@ __metadata: languageName: node linkType: hard +"event-stream@npm:=3.3.4": + version: 3.3.4 + resolution: "event-stream@npm:3.3.4" + dependencies: + duplexer: ~0.1.1 + from: ~0 + map-stream: ~0.1.0 + pause-stream: 0.0.11 + split: 0.3 + stream-combiner: ~0.0.4 + through: ~2.3.1 + checksum: dd5a563370ed94cfcc8f495528fd4795505d5ee7a991ea7870ec550dd9a785c121b47e931eb3e82be7ff0f449ae113b8026468249715ac432ffa9d402317715e + languageName: node + linkType: hard + "eventemitter3@npm:^4.0.0": version: 4.0.4 resolution: "eventemitter3@npm:4.0.4" @@ -5410,6 +5437,13 @@ __metadata: languageName: node linkType: hard +"from@npm:~0": + version: 0.1.7 + resolution: "from@npm:0.1.7" + checksum: 23cc6301f6475806242a68cc2d70e40d363ffe0590c4c053c44638a9fb8c7c77a521f20d5c880b10a5e523a7ba1ca3e0827ccef32bddf0f3ad7b6bda771b1194 + languageName: node + linkType: hard + "fs-extra@npm:^9.0.1": version: 9.0.1 resolution: "fs-extra@npm:9.0.1" @@ -5599,7 +5633,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"glob@npm:^7.0.3, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4": +"glob@npm:^7.0.3, glob@npm:^7.0.5, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.1.6 resolution: "glob@npm:7.1.6" dependencies: @@ -6782,6 +6816,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"is-running@npm:^2.1.0": + version: 2.1.0 + resolution: "is-running@npm:2.1.0" + checksum: 12b75e9513a8e801f6e5a2874c68cf84ace4e2f91cff8ccf14a37a7a6ee6ea79e4e2d384451191e3d84ad137327446144635a5fd4bb13a0c1e483f0931e9b876 + languageName: node + linkType: hard + "is-stream@npm:^1.1.0": version: 1.1.0 resolution: "is-stream@npm:1.1.0" @@ -7665,6 +7706,7 @@ fsevents@^1.2.7: babel-plugin-version-inline: ^1.0.0 benchmark: ^2.1.4 browserslist: ^4.13.0 + browserstack-local: ^1.4.5 caniuse-lite: ^1.0.30001102 codecov: ^3.7.1 commander: ^6.0.0 @@ -8079,6 +8121,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"map-stream@npm:~0.1.0": + version: 0.1.0 + resolution: "map-stream@npm:0.1.0" + checksum: 46003aa4a78c32d2f6d6e71d93f3401cf97ee1823117d1b148872d50373d3642fc1becdbbbf4f27b40692db7cd1cb770fc2be282f2bd785662c68eb1956a1219 + languageName: node + linkType: hard + "map-visit@npm:^1.0.0": version: 1.0.0 resolution: "map-visit@npm:1.0.0" @@ -9335,6 +9384,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"pause-stream@npm:0.0.11": + version: 0.0.11 + resolution: "pause-stream@npm:0.0.11" + dependencies: + through: ~2.3 + checksum: a6bcf306f5e7f2cca0adcb424a6c7fa2760233ffd0631695421fdb29cdf8fbaf734161a6e97ebd05c83764b950029167036b0bb9898b36ae772ad5ad48862e91 + languageName: node + linkType: hard + "pbkdf2@npm:^3.0.3": version: 3.1.1 resolution: "pbkdf2@npm:3.1.1" @@ -10414,6 +10472,17 @@ fsevents@^1.2.7: languageName: node linkType: hard +"ps-tree@npm:=1.2.0": + version: 1.2.0 + resolution: "ps-tree@npm:1.2.0" + dependencies: + event-stream: =3.3.4 + bin: + ps-tree: ./bin/ps-tree.js + checksum: 0dd001ab27d022acc6226ebf54938deaf151200f778d5f34470dcfe7395e5695331c588641c574e742d3933803c0b974802bd2c22ebe1584afe1c93f319b02cf + languageName: node + linkType: hard + "psl@npm:^1.1.28": version: 1.8.0 resolution: "psl@npm:1.8.0" @@ -11079,6 +11148,17 @@ fsevents@^1.2.7: languageName: node linkType: hard +"rimraf@npm:~2.5.2": + version: 2.5.4 + resolution: "rimraf@npm:2.5.4" + dependencies: + glob: ^7.0.5 + bin: + rimraf: ./bin.js + checksum: d61ffc54a6ee083db7540ac7cb6b87bc58538271303f52b32a146c059cdb93d914e94a4468960f4e09b15b783777bdc6b2461b1ac157d5abe034edfdc7e38318 + languageName: node + linkType: hard + "ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1": version: 2.0.2 resolution: "ripemd160@npm:2.0.2" @@ -11720,6 +11800,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"split@npm:0.3": + version: 0.3.3 + resolution: "split@npm:0.3.3" + dependencies: + through: 2 + checksum: 4e20ae69b398d29820873dbba48baeefb6c1db3250cb2cdd467d91d571ea97232e94f21438d08824655d9436fd1c9994ce80e533c7b6a01923332f271bc8a1f4 + languageName: node + linkType: hard + "sprintf-js@npm:~1.0.2": version: 1.0.3 resolution: "sprintf-js@npm:1.0.3" @@ -11830,6 +11919,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"stream-combiner@npm:~0.0.4": + version: 0.0.4 + resolution: "stream-combiner@npm:0.0.4" + dependencies: + duplexer: ~0.1.1 + checksum: 0c936c1cb4f0cef21aef31e06d92b4bd39b4243f6dad5e2ce576d4b09c208c30fdc9f269c4a1435da5d2ff42eaa4ba25fcae886db08046effdc03b7e2d0ddcc6 + languageName: node + linkType: hard + "stream-each@npm:^1.1.0": version: 1.2.3 resolution: "stream-each@npm:1.2.3" @@ -12306,6 +12404,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"temp-fs@npm:^0.9.9": + version: 0.9.9 + resolution: "temp-fs@npm:0.9.9" + dependencies: + rimraf: ~2.5.2 + checksum: 64c93d36b68e6a8f6d6ae279c3c9524977d27f6b62db1a9814da3ded81e6eb24447696b2c13ec02dddafeff95dfb316d29cb6f74aaeed0c7171d2af3b6da5e99 + languageName: node + linkType: hard + "terminal-link@npm:^2.0.0": version: 2.1.1 resolution: "terminal-link@npm:2.1.1" @@ -12402,6 +12509,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"through@npm:2, through@npm:~2.3, through@npm:~2.3.1": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: 918d9151680b5355990011eb8c4b02e8cb8cf6e9fb6ea3d3e5a1faa688343789e261634ae35de4ea9167ab029d1e7bac6af2fe61b843931768d405fdc3e8897c + languageName: node + linkType: hard + "thunky@npm:^1.0.2": version: 1.1.0 resolution: "thunky@npm:1.1.0"