This adds support for running chrome in headless mode.
Support for running firefox in headless mode should work but currently
doesn't.
Moreover, i've added browser option handling to wct [1].
[1] b8388d1a8d
Bug: Issue 8023
Change-Id: I47cd9cd69fc78739219223c74d7b2edf2f97d6c7
		
	
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
set -ex
 | 
						|
 | 
						|
t=$(mktemp -d || mktemp -d -t wct-XXXXXXXXXX)
 | 
						|
components=$TEST_SRCDIR/gerrit/polygerrit-ui/app/test_components.zip
 | 
						|
code=$TEST_SRCDIR/gerrit/polygerrit-ui/app/polygerrit_embed_ui.zip
 | 
						|
index=$TEST_SRCDIR/gerrit/polygerrit-ui/app/embed/test.html
 | 
						|
tests=$TEST_SRCDIR/gerrit/polygerrit-ui/app/embed/*_test.html
 | 
						|
 | 
						|
unzip -qd $t $components
 | 
						|
unzip -qd $t $code
 | 
						|
mkdir -p $t/test
 | 
						|
cp $index $t/test/
 | 
						|
cp $tests $t/test/
 | 
						|
 | 
						|
if [ "${WCT_HEADLESS_MODE:-0}" != "0" ]; then
 | 
						|
    CHROME_OPTIONS=[\'start-maximized\',\'headless\',\'disable-gpu\',\'no-sandbox\']
 | 
						|
    # TODO(paladox): Fix Firefox support for headless mode
 | 
						|
    FIREFOX_OPTIONS=[\'\']
 | 
						|
else
 | 
						|
    CHROME_OPTIONS=[\'start-maximized\']
 | 
						|
    FIREFOX_OPTIONS=[\'\']
 | 
						|
fi
 | 
						|
 | 
						|
# For some reason wct tries to install selenium into its node_modules
 | 
						|
# directory on first run. If you've installed into /usr/local and
 | 
						|
# aren't running wct as root, you're screwed. Turning this option off
 | 
						|
# through skipSeleniumInstall seems to still work, so there's that.
 | 
						|
 | 
						|
# Sauce tests are disabled by default in order to run local tests
 | 
						|
# only.  Run it with (saucelabs.com account required; free for open
 | 
						|
# source): WCT_ARGS='--plugin sauce' ./polygerrit-ui/app/embed_test.sh
 | 
						|
 | 
						|
cat <<EOF > $t/wct.conf.js
 | 
						|
module.exports = {
 | 
						|
      'suites': ['test'],
 | 
						|
      'webserver': {
 | 
						|
        'pathMappings': [
 | 
						|
          {'/components/bower_components': 'bower_components'}
 | 
						|
        ]
 | 
						|
      },
 | 
						|
      'plugins': {
 | 
						|
        'local': {
 | 
						|
          'skipSeleniumInstall': true,
 | 
						|
          'browserOptions': {
 | 
						|
            'chrome': ${CHROME_OPTIONS},
 | 
						|
            'firefox': ${FIREFOX_OPTIONS}
 | 
						|
          }
 | 
						|
        },
 | 
						|
        'sauce': {
 | 
						|
          'disabled': true,
 | 
						|
          'browsers': [
 | 
						|
            'OS X 10.12/chrome',
 | 
						|
            'Windows 10/chrome',
 | 
						|
            'Linux/firefox',
 | 
						|
            'OS X 10.12/safari',
 | 
						|
            'Windows 10/microsoftedge'
 | 
						|
          ]
 | 
						|
        }
 | 
						|
      }
 | 
						|
    };
 | 
						|
EOF
 | 
						|
 | 
						|
export PATH="$(dirname $WCT):$(dirname $NPM):$PATH"
 | 
						|
 | 
						|
cd $t
 | 
						|
test -n "${WCT}"
 | 
						|
 | 
						|
$(basename ${WCT}) ${WCT_ARGS}
 |