UNPKG

strider-sauce

Version:

Sauce Labs / Selenium support for Strider

64 lines (58 loc) 1.72 kB
/* global browsers: true, app: true */ function organize(browsers) { var oss = {}; for (var i=0; i<browsers.length; i++) { if (!oss[browsers[i].os]) { oss[browsers[i].os] = {}; } if (!oss[browsers[i].os][browsers[i].long_name]) { oss[browsers[i].os][browsers[i].long_name] = []; } oss[browsers[i].os][browsers[i].long_name].push(browsers[i]); browsers[i].complete_name = completeName(browsers[i]); } return oss; } function completeName(version) { return version.os + '-' + version.api_name + '-' + version.short_version; } function parseName(name) { var parts = name.split('-'); return { platform: parts[0], browserName: parts[1], version: parts[2] || '' }; } function serializeName(browser) { return browser.platform + '-' + browser.browserName + '-' + browser.version; } app.controller('SauceCtrl', ['$scope', function ($scope) { $scope.$watch('configs[branch.name].sauce.config', function (value) { $scope.config = value; if (!value) return; $scope.browser_map = {}; if (!value.browsers) { value.browsers = []; } for (var i=0; i<value.browsers.length; i++) { $scope.browser_map[serializeName(value.browsers[i])] = true; } }); $scope.completeName = completeName; $scope.operatingsystems = organize(browsers || []); $scope.save = function () { $scope.config.browsers = []; for (var name in $scope.browser_map) { if ($scope.browser_map[name]) { $scope.config.browsers.push(parseName(name)); } } $scope.pluginConfig('sauce', $scope.config, function () { }); }; $scope.clear = function () { $scope.browser_map = {}; $scope.$digest(); }; }]);