cms/drupal/profiles/drustack/libraries/backbone/karma.conf-sauce.js
changeset 541 e756a8c72c3d
equal deleted inserted replaced
540:07239de796bb 541:e756a8c72c3d
       
     1 var _ = require('underscore');
       
     2 
       
     3 // Browsers to run on Sauce Labs platforms
       
     4 var sauceBrowsers = _.reduce([
       
     5   ['firefox', '35'],
       
     6   ['firefox', '30'],
       
     7   ['firefox', '21'],
       
     8   ['firefox', '11'],
       
     9   ['firefox', '4'],
       
    10 
       
    11   ['chrome', '40'],
       
    12   ['chrome', '39'],
       
    13   ['chrome', '31'],
       
    14   ['chrome', '26'],
       
    15 
       
    16   ['internet explorer', '11', 'Windows 8.1'],
       
    17   ['internet explorer', '10', 'Windows 8'],
       
    18   ['internet explorer', '9', 'Windows 7'],
       
    19   ['internet explorer', '8'],
       
    20   ['internet explorer', '7', 'Windows XP'],
       
    21   // ['internet explorer', '6', 'Windows XP'],
       
    22 
       
    23   ['opera', '12'],
       
    24   ['opera', '11'],
       
    25 
       
    26   ['android', '5'],
       
    27   ['android', '4.4'],
       
    28   ['android', '4.3'],
       
    29   ['android', '4.0'],
       
    30 
       
    31   ['safari', '8.0', 'OS X 10.10'],
       
    32   ['safari', '7'],
       
    33   ['safari', '6'],
       
    34   ['safari', '5']
       
    35 ], function(memo, platform) {
       
    36   // internet explorer -> ie
       
    37   var label = platform[0].split(' ');
       
    38   if (label.length > 1) {
       
    39     label = _.invoke(label, 'charAt', 0)
       
    40   }
       
    41   label = (label.join("") + '_v' + platform[1]).replace(' ', '_').toUpperCase();
       
    42   memo[label] = _.pick({
       
    43     'base': 'SauceLabs',
       
    44     'browserName': platform[0],
       
    45     'version': platform[1],
       
    46     'platform': platform[2]
       
    47   }, Boolean);
       
    48   return memo;
       
    49 }, {});
       
    50 
       
    51 module.exports = function(config) {
       
    52   if ( !process.env.SAUCE_USERNAME || !process.env.SAUCE_ACCESS_KEY ) {
       
    53     console.log('Sauce environments not set --- Skipping');
       
    54     return process.exit(0);
       
    55   }
       
    56 
       
    57   config.set({
       
    58     basePath: '',
       
    59     frameworks: ['qunit'],
       
    60     singleRun: true,
       
    61 
       
    62     // list of files / patterns to load in the browser
       
    63     files: [
       
    64         'test/vendor/jquery.js',
       
    65         'test/vendor/json2.js',
       
    66         'test/vendor/underscore.js',
       
    67         'backbone.js',
       
    68         'test/setup/*.js',
       
    69         'test/*.js'
       
    70     ],
       
    71 
       
    72     // test results reporter to use
       
    73     reporters: ['dots', 'saucelabs'],
       
    74     port: 9876,
       
    75     colors: true,
       
    76     logLevel: config.LOG_INFO,
       
    77     sauceLabs: {
       
    78       build: 'TRAVIS #' + process.env.TRAVIS_BUILD_NUMBER + ' (' + process.env.TRAVIS_BUILD_ID + ')',
       
    79       startConnect: true,
       
    80       tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER
       
    81     },
       
    82 
       
    83     captureTimeout: 120000,
       
    84     customLaunchers: sauceBrowsers,
       
    85 
       
    86     // Browsers to launch, commented out to prevent karma from starting
       
    87     // too many concurrent browsers and timing sauce out.
       
    88     browsers: _.keys(sauceBrowsers)
       
    89   });
       
    90 };