| /* eslint-env mocha */ | |
| var expect = require('chai').expect | |
| var sinon = require('sinon') | |
| var launcher = require('../index') | |
| describe('isJSFlags()', function () { | |
| var isJSFlags = launcher.test.isJSFlags | |
| it('should return true if flag begins with --js-flags=', function () { | |
| expect(isJSFlags('--js-flags=--expose-gc')).to.be.eql(true) | |
| expect(isJSFlags('--js-flags="--expose-gc"')).to.be.eql(true) | |
| expect(isJSFlags("--js-flags='--expose-gc'")).to.be.eql(true) | |
| }) | |
| it('should return false if flag does not begin with --js-flags=', function () { | |
| expect(isJSFlags(' --js-flags=--expose-gc')).to.be.eql(false) | |
| expect(isJSFlags('--js-flags"--expose-gc"')).to.be.eql(false) | |
| expect(isJSFlags('--jsflags="--expose-gc"')).to.be.eql(false) | |
| }) | |
| }) | |
| describe('sanitizeJSFlags()', function () { | |
| var sanitizeJSFlags = launcher.test.sanitizeJSFlags | |
| it('should do nothing if flags are not contained in quotes', function () { | |
| expect(sanitizeJSFlags('--js-flags=--expose-gc')).to.be.eql('--js-flags=--expose-gc') | |
| }) | |
| it('should symmetrically remove single or double quote if wraps all flags', function () { | |
| expect(sanitizeJSFlags("--js-flags='--expose-gc'")).to.be.eql('--js-flags=--expose-gc') | |
| expect(sanitizeJSFlags('--js-flags="--expose-gc"')).to.be.eql('--js-flags=--expose-gc') | |
| }) | |
| it('should NOT remove anything if the flags are not contained within quote', function () { | |
| expect(sanitizeJSFlags('--js-flags=--expose-gc="true"')).to.be.eql('--js-flags=--expose-gc="true"') | |
| expect(sanitizeJSFlags("--js-flags=--expose-gc='true'")).to.be.eql("--js-flags=--expose-gc='true'") | |
| }) | |
| }) | |
| describe('canaryGetOptions', function () { | |
| var canaryGetOptions = launcher.test.canaryGetOptions | |
| it('should return a merged version of --js-flags', function () { | |
| var parent = sinon.stub().returns(['-incognito']) | |
| var context = {} | |
| var url = 'http://localhost:9876' | |
| var args = { flags: ['--js-flags="--expose-gc"'] } | |
| expect(canaryGetOptions.call(context, url, args, parent)).to.be.eql([ | |
| '-incognito', | |
| '--js-flags=--expose-gc --nocrankshaft --noopt' | |
| ]) | |
| }) | |
| }) | |
| describe('headlessGetOptions', function () { | |
| var headlessGetOptions = launcher.test.headlessGetOptions | |
| it('should return the headless flags', function () { | |
| var parent = sinon.stub().returns(['-incognito']) | |
| var context = {} | |
| var url = 'http://localhost:9876' | |
| var args = {} | |
| expect(headlessGetOptions.call(context, url, args, parent)).to.be.eql([ | |
| '-incognito', | |
| '--headless', | |
| '--disable-gpu', | |
| '--disable-dev-shm-usage', | |
| '--remote-debugging-port=9222' | |
| ]) | |
| }) | |
| it('should not overwrite custom remote-debugging-port', function () { | |
| var parent = sinon.stub().returns( | |
| ['-incognito', '--remote-debugging-port=9333'] | |
| ) | |
| var context = {} | |
| var url = 'http://localhost:9876' | |
| var args = {} | |
| expect(headlessGetOptions.call(context, url, args, parent)).to.be.eql([ | |
| '-incognito', | |
| '--remote-debugging-port=9333', | |
| '--headless', | |
| '--disable-gpu', | |
| '--disable-dev-shm-usage' | |
| ]) | |
| }) | |
| }) |