| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @license | 
					
						
							| 
									
										
										
										
											2020-05-19 12:08:49 -07:00
										 |  |  |  * Copyright Google LLC All Rights Reserved. | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Use of this source code is governed by an MIT-style license that can be | 
					
						
							|  |  |  |  * found in the LICENSE file at https://angular.io/license
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Unique place to configure the browsers which are used in the different CI jobs in Sauce Labs (SL)
 | 
					
						
							|  |  |  | // and BrowserStack (BS).
 | 
					
						
							| 
									
										
										
										
											2015-12-10 14:40:00 +01:00
										 |  |  | // If the target is set to null, then the browser is not run anywhere during CI.
 | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  | // If a category becomes empty (e.g. BS and required), then the corresponding job must be commented
 | 
					
						
							| 
									
										
										
										
											2019-01-08 12:41:24 +01:00
										 |  |  | // out in the CI configuration.
 | 
					
						
							| 
									
										
										
										
											2015-12-10 14:40:00 +01:00
										 |  |  | var CIconfiguration = { | 
					
						
							| 
									
										
										
										
											2020-08-13 10:09:43 +02:00
										 |  |  |   // Chrome and Firefox run as part of the Bazel browser tests, so we do not run them as
 | 
					
						
							|  |  |  |   // part of the legacy Saucelabs tests.
 | 
					
						
							|  |  |  |   'Chrome': {unitTest: {target: null, required: false}, e2e: {target: null, required: true}}, | 
					
						
							|  |  |  |   'Firefox': {unitTest: {target: null, required: false}, e2e: {target: null, required: true}}, | 
					
						
							| 
									
										
										
										
											2020-06-19 10:02:33 -07:00
										 |  |  |   // Set ESR as a not required browser as it fails for Ivy acceptance tests.
 | 
					
						
							|  |  |  |   'FirefoxESR': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}}, | 
					
						
							| 
									
										
										
										
											2019-03-27 17:57:29 +01:00
										 |  |  |   // Disabled because using the "beta" channel of Chrome can cause non-deterministic CI results.
 | 
					
						
							|  |  |  |   // e.g. a new chrome beta version has been released, but the Saucelabs selenium server does
 | 
					
						
							|  |  |  |   // not provide a chromedriver version that is compatible with the new beta.
 | 
					
						
							| 
									
										
										
										
											2019-03-26 12:43:55 +01:00
										 |  |  |   'ChromeBeta': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: false}}, | 
					
						
							| 
									
										
										
										
											2017-08-21 16:45:52 +02:00
										 |  |  |   'ChromeDev': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}}, | 
					
						
							|  |  |  |   // FirefoxBeta and FirefoxDev should be target:'BS' or target:'SL', and required:true
 | 
					
						
							| 
									
										
										
										
											2016-05-09 16:47:26 -07:00
										 |  |  |   // Currently deactivated due to https://github.com/angular/angular/issues/7560
 | 
					
						
							| 
									
										
										
										
											2017-08-21 16:45:52 +02:00
										 |  |  |   'FirefoxBeta': {unitTest: {target: null, required: true}, e2e: {target: null, required: false}}, | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |   'FirefoxDev': {unitTest: {target: null, required: true}, e2e: {target: null, required: true}}, | 
					
						
							|  |  |  |   'IE9': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}}, | 
					
						
							|  |  |  |   'IE10': {unitTest: {target: 'SL', required: true}, e2e: {target: null, required: true}}, | 
					
						
							|  |  |  |   'IE11': {unitTest: {target: 'SL', required: true}, e2e: {target: null, required: true}}, | 
					
						
							| 
									
										
										
										
											2017-09-21 15:33:04 +02:00
										 |  |  |   'Edge': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}}, | 
					
						
							| 
									
										
										
										
											2020-02-06 14:17:35 +01:00
										 |  |  |   'Android7': {unitTest: {target: 'SL', required: true}, e2e: {target: null, required: true}}, | 
					
						
							| 
									
										
										
										
											2020-02-06 15:50:14 -08:00
										 |  |  |   'Android8': {unitTest: {target: 'SL', required: true}, e2e: {target: null, required: true}}, | 
					
						
							|  |  |  |   'Android9': {unitTest: {target: 'SL', required: true}, e2e: {target: null, required: true}}, | 
					
						
							| 
									
										
										
										
											2020-06-02 10:38:37 -07:00
										 |  |  |   // Disable Android 10 tests due to infrastructure failure.
 | 
					
						
							|  |  |  |   // ex:
 | 
					
						
							|  |  |  |   // Chrome Mobile 74.0.3729 (Android 0.0.0) ERROR:
 | 
					
						
							|  |  |  |   //    Error: XHR error loading
 | 
					
						
							|  |  |  |   //    http://angular-ci.local:9876/base/node_modules/rxjs/internal/operators/zip.js
 | 
					
						
							|  |  |  |   //
 | 
					
						
							|  |  |  |   // Error loading http://angular-ci.local:9876/base/node_modules/rxjs/internal/operators/zip.js as
 | 
					
						
							|  |  |  |   // "../internal/operators/zip" from
 | 
					
						
							|  |  |  |   // http://angular-ci.local:9876/base/node_modules/rxjs/operators/index.js
 | 
					
						
							|  |  |  |   'Android10': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}}, | 
					
						
							| 
									
										
										
										
											2020-05-07 13:05:09 +02:00
										 |  |  |   // Disable all Safari and iOS tests because of incorrect results
 | 
					
						
							|  |  |  |   // ex:
 | 
					
						
							| 
									
										
										
										
											2020-05-19 12:08:49 -07:00
										 |  |  |   // Mobile Safari 13.0.0 (iOS 13.0.0) styling static template only should capture static values in
 | 
					
						
							|  |  |  |   // TStylingKey FAILED Expected $.content = 'dynamic' to equal '"dynamic"'. Mobile Safari 12.0.0
 | 
					
						
							|  |  |  |   // (iOS 12.0.0) styling should handle values wrapped into SafeValue FAILED Expected
 | 
					
						
							|  |  |  |   // 'url("http://angular-ci.local:9876/1.png")' to contain 'url("/1.png")'.s Tracking in:
 | 
					
						
							|  |  |  |   // https://github.com/angular/angular/issues/36975
 | 
					
						
							| 
									
										
										
										
											2020-05-07 13:05:09 +02:00
										 |  |  |   'Safari12': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}}, | 
					
						
							|  |  |  |   'Safari13': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}}, | 
					
						
							|  |  |  |   'iOS12': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}}, | 
					
						
							|  |  |  |   'iOS13': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}}, | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |   'WindowsPhone': {unitTest: {target: 'BS', required: false}, e2e: {target: null, required: true}} | 
					
						
							| 
									
										
										
										
											2015-12-10 14:40:00 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-02 16:29:09 +02:00
										 |  |  | var customLaunchers = { | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |   'DartiumWithWebPlatform': | 
					
						
							|  |  |  |       {base: 'Dartium', flags: ['--enable-experimental-web-platform-features']}, | 
					
						
							|  |  |  |   'ChromeNoSandbox': {base: 'Chrome', flags: ['--no-sandbox']}, | 
					
						
							| 
									
										
										
										
											2020-05-07 12:39:23 +02:00
										 |  |  |   'SL_CHROME': {base: 'SauceLabs', browserName: 'chrome', version: '81'}, | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |   'SL_CHROMEBETA': {base: 'SauceLabs', browserName: 'chrome', version: 'beta'}, | 
					
						
							|  |  |  |   'SL_CHROMEDEV': {base: 'SauceLabs', browserName: 'chrome', version: 'dev'}, | 
					
						
							| 
									
										
										
										
											2020-05-07 12:39:23 +02:00
										 |  |  |   'SL_FIREFOX': {base: 'SauceLabs', browserName: 'firefox', version: '76'}, | 
					
						
							|  |  |  |   // Firefox 68 is the current ESR vesion
 | 
					
						
							|  |  |  |   'SL_FIREFOXESR': {base: 'SauceLabs', browserName: 'firefox', version: '68'}, | 
					
						
							| 
									
										
										
										
											2017-08-21 16:45:52 +02:00
										 |  |  |   'SL_FIREFOXBETA': | 
					
						
							|  |  |  |       {base: 'SauceLabs', platform: 'Windows 10', browserName: 'firefox', version: 'beta'}, | 
					
						
							|  |  |  |   'SL_FIREFOXDEV': | 
					
						
							|  |  |  |       {base: 'SauceLabs', platform: 'Windows 10', browserName: 'firefox', version: 'dev'}, | 
					
						
							| 
									
										
										
										
											2020-05-07 12:39:23 +02:00
										 |  |  |   'SL_SAFARI12': | 
					
						
							|  |  |  |       {base: 'SauceLabs', browserName: 'safari', platform: 'macOS 10.13', version: '12.1'}, | 
					
						
							|  |  |  |   'SL_SAFARI13': | 
					
						
							|  |  |  |       {base: 'SauceLabs', browserName: 'safari', platform: 'macOS 10.15', version: '13.0'}, | 
					
						
							|  |  |  |   'SL_IOS12': { | 
					
						
							|  |  |  |     base: 'SauceLabs', | 
					
						
							|  |  |  |     browserName: 'Safari', | 
					
						
							|  |  |  |     platform: 'iOS', | 
					
						
							|  |  |  |     version: '12.0', | 
					
						
							|  |  |  |     device: 'iPhone 7 Simulator' | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   'SL_IOS13': { | 
					
						
							|  |  |  |     base: 'SauceLabs', | 
					
						
							|  |  |  |     browserName: 'Safari', | 
					
						
							|  |  |  |     platform: 'iOS', | 
					
						
							|  |  |  |     version: '13.0', | 
					
						
							|  |  |  |     device: 'iPhone 11 Simulator' | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |   'SL_IE9': | 
					
						
							|  |  |  |       {base: 'SauceLabs', browserName: 'internet explorer', platform: 'Windows 2008', version: '9'}, | 
					
						
							| 
									
										
										
										
											2015-06-02 16:29:09 +02:00
										 |  |  |   'SL_IE10': { | 
					
						
							|  |  |  |     base: 'SauceLabs', | 
					
						
							|  |  |  |     browserName: 'internet explorer', | 
					
						
							|  |  |  |     platform: 'Windows 2012', | 
					
						
							|  |  |  |     version: '10' | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |   'SL_IE11': | 
					
						
							|  |  |  |       {base: 'SauceLabs', browserName: 'internet explorer', platform: 'Windows 8.1', version: '11'}, | 
					
						
							| 
									
										
										
										
											2015-09-28 00:38:30 +02:00
										 |  |  |   'SL_EDGE': { | 
					
						
							|  |  |  |     base: 'SauceLabs', | 
					
						
							| 
									
										
										
										
											2016-05-09 16:47:26 -07:00
										 |  |  |     browserName: 'MicrosoftEdge', | 
					
						
							| 
									
										
										
										
											2015-09-28 00:38:30 +02:00
										 |  |  |     platform: 'Windows 10', | 
					
						
							| 
									
										
										
										
											2017-09-21 15:33:04 +02:00
										 |  |  |     version: '14.14393' | 
					
						
							| 
									
										
										
										
											2015-09-28 00:38:30 +02:00
										 |  |  |   }, | 
					
						
							| 
									
										
										
										
											2017-08-21 14:21:56 +02:00
										 |  |  |   'SL_ANDROID7': { | 
					
						
							|  |  |  |     base: 'SauceLabs', | 
					
						
							|  |  |  |     browserName: 'Chrome', | 
					
						
							|  |  |  |     platform: 'Android', | 
					
						
							|  |  |  |     version: '7.1', | 
					
						
							|  |  |  |     device: 'Android GoogleAPI Emulator' | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2020-02-06 15:50:14 -08:00
										 |  |  |   'SL_ANDROID8': { | 
					
						
							|  |  |  |     base: 'SauceLabs', | 
					
						
							|  |  |  |     browserName: 'Chrome', | 
					
						
							|  |  |  |     platform: 'Android', | 
					
						
							|  |  |  |     version: '8.0', | 
					
						
							|  |  |  |     device: 'Android GoogleAPI Emulator' | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   'SL_ANDROID9': { | 
					
						
							|  |  |  |     base: 'SauceLabs', | 
					
						
							|  |  |  |     browserName: 'Chrome', | 
					
						
							|  |  |  |     platform: 'Android', | 
					
						
							|  |  |  |     version: '9.0', | 
					
						
							|  |  |  |     device: 'Android GoogleAPI Emulator' | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   'SL_ANDROID10': { | 
					
						
							|  |  |  |     base: 'SauceLabs', | 
					
						
							|  |  |  |     browserName: 'Chrome', | 
					
						
							|  |  |  |     platform: 'Android', | 
					
						
							|  |  |  |     version: '10.0', | 
					
						
							|  |  |  |     device: 'Android GoogleAPI Emulator' | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |   'BS_CHROME': {base: 'BrowserStack', browser: 'chrome', os: 'OS X', os_version: 'Yosemite'}, | 
					
						
							|  |  |  |   'BS_FIREFOX': {base: 'BrowserStack', browser: 'firefox', os: 'Windows', os_version: '10'}, | 
					
						
							|  |  |  |   'BS_SAFARI10': {base: 'BrowserStack', browser: 'safari', os: 'OS X', os_version: 'Sierra'}, | 
					
						
							|  |  |  |   'BS_IE9': | 
					
						
							|  |  |  |       {base: 'BrowserStack', browser: 'ie', browser_version: '9.0', os: 'Windows', os_version: '7'}, | 
					
						
							| 
									
										
										
										
											2015-11-03 17:26:56 +01:00
										 |  |  |   'BS_IE10': { | 
					
						
							|  |  |  |     base: 'BrowserStack', | 
					
						
							|  |  |  |     browser: 'ie', | 
					
						
							| 
									
										
										
										
											2016-12-13 20:32:31 +01:00
										 |  |  |     browser_version: '10.1', | 
					
						
							| 
									
										
										
										
											2015-11-03 17:26:56 +01:00
										 |  |  |     os: 'Windows', | 
					
						
							|  |  |  |     os_version: '8' | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   'BS_IE11': { | 
					
						
							|  |  |  |     base: 'BrowserStack', | 
					
						
							|  |  |  |     browser: 'ie', | 
					
						
							|  |  |  |     browser_version: '11.0', | 
					
						
							|  |  |  |     os: 'Windows', | 
					
						
							|  |  |  |     os_version: '10' | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |   'BS_EDGE': {base: 'BrowserStack', browser: 'edge', os: 'Windows', os_version: '10'}, | 
					
						
							|  |  |  |   'BS_WINDOWSPHONE': | 
					
						
							|  |  |  |       {base: 'BrowserStack', device: 'Nokia Lumia 930', os: 'winphone', os_version: '8.1'}, | 
					
						
							| 
									
										
										
										
											2020-05-07 12:39:23 +02:00
										 |  |  |   'BS_ANDROID7': {base: 'BrowserStack', device: 'Google Pixel', os: 'android', os_version: '7.1'} | 
					
						
							| 
									
										
										
										
											2015-06-02 16:29:09 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-27 16:09:09 +01:00
										 |  |  | var sauceAliases = { | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |   'ALL': Object.keys(customLaunchers).filter(function(item) { | 
					
						
							|  |  |  |     return customLaunchers[item].base == 'SauceLabs'; | 
					
						
							|  |  |  |   }), | 
					
						
							|  |  |  |   'DESKTOP': [ | 
					
						
							| 
									
										
										
										
											2020-05-19 12:08:49 -07:00
										 |  |  |     'SL_CHROME', 'SL_FIREFOX', 'SL_IE9', 'SL_IE10', 'SL_IE11', 'SL_EDGE', 'SL_SAFARI12', | 
					
						
							|  |  |  |     'SL_SAFARI13', 'SL_FIREFOXESR' | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |   ], | 
					
						
							| 
									
										
										
										
											2020-05-19 12:08:49 -07:00
										 |  |  |   'MOBILE': ['SL_ANDROID7', 'SL_ANDROID8', 'SL_ANDROID9', 'SL_ANDROID10', 'SL_IOS12', 'SL_IOS13'], | 
					
						
							|  |  |  |   'ANDROID': ['SL_ANDROID7', 'SL_ANDROID8', 'SL_ANDROID9', 'SL_ANDROID10'], | 
					
						
							|  |  |  |   'FIREFOX': ['SL_FIREFOXESR'], | 
					
						
							| 
									
										
										
										
											2015-06-02 16:29:09 +02:00
										 |  |  |   'IE': ['SL_IE9', 'SL_IE10', 'SL_IE11'], | 
					
						
							| 
									
										
										
										
											2020-05-07 12:39:23 +02:00
										 |  |  |   'IOS': ['SL_IOS12', 'SL_IOS13'], | 
					
						
							|  |  |  |   'SAFARI': ['SL_SAFARI12', 'SL_SAFARI13'], | 
					
						
							| 
									
										
										
										
											2015-06-02 16:29:09 +02:00
										 |  |  |   'BETA': ['SL_CHROMEBETA', 'SL_FIREFOXBETA'], | 
					
						
							|  |  |  |   'DEV': ['SL_CHROMEDEV', 'SL_FIREFOXDEV'], | 
					
						
							| 
									
										
										
										
											2015-12-10 14:40:00 +01:00
										 |  |  |   'CI_REQUIRED': buildConfiguration('unitTest', 'SL', true), | 
					
						
							|  |  |  |   'CI_OPTIONAL': buildConfiguration('unitTest', 'SL', false) | 
					
						
							| 
									
										
										
										
											2015-06-02 16:29:09 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-27 16:09:09 +01:00
										 |  |  | var browserstackAliases = { | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |   'ALL': Object.keys(customLaunchers).filter(function(item) { | 
					
						
							|  |  |  |     return customLaunchers[item].base == 'BrowserStack'; | 
					
						
							|  |  |  |   }), | 
					
						
							|  |  |  |   'DESKTOP': [ | 
					
						
							| 
									
										
										
										
											2020-05-19 12:08:49 -07:00
										 |  |  |     'BS_CHROME', | 
					
						
							|  |  |  |     'BS_FIREFOX', | 
					
						
							|  |  |  |     'BS_IE9', | 
					
						
							|  |  |  |     'BS_IE10', | 
					
						
							|  |  |  |     'BS_IE11', | 
					
						
							|  |  |  |     'BS_EDGE', | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |   ], | 
					
						
							| 
									
										
										
										
											2020-05-19 12:08:49 -07:00
										 |  |  |   'MOBILE': ['BS_ANDROID7', 'BS_WINDOWSPHONE'], | 
					
						
							| 
									
										
										
										
											2020-05-07 12:39:23 +02:00
										 |  |  |   'ANDROID': ['BS_ANDROID7'], | 
					
						
							| 
									
										
										
										
											2015-11-03 17:26:56 +01:00
										 |  |  |   'IE': ['BS_IE9', 'BS_IE10', 'BS_IE11'], | 
					
						
							| 
									
										
										
										
											2020-05-07 12:39:23 +02:00
										 |  |  |   'IOS': [], | 
					
						
							|  |  |  |   'SAFARI': [], | 
					
						
							| 
									
										
										
										
											2015-12-10 14:40:00 +01:00
										 |  |  |   'CI_REQUIRED': buildConfiguration('unitTest', 'BS', true), | 
					
						
							|  |  |  |   'CI_OPTIONAL': buildConfiguration('unitTest', 'BS', false) | 
					
						
							| 
									
										
										
										
											2015-10-27 16:09:09 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-02 16:29:09 +02:00
										 |  |  | module.exports = { | 
					
						
							|  |  |  |   customLaunchers: customLaunchers, | 
					
						
							| 
									
										
										
										
											2015-10-27 16:09:09 +01:00
										 |  |  |   sauceAliases: sauceAliases, | 
					
						
							|  |  |  |   browserstackAliases: browserstackAliases | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2015-12-10 14:40:00 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | function buildConfiguration(type, target, required) { | 
					
						
							|  |  |  |   return Object.keys(CIconfiguration) | 
					
						
							| 
									
										
										
										
											2016-10-04 20:39:20 -07:00
										 |  |  |       .filter((item) => { | 
					
						
							|  |  |  |         var conf = CIconfiguration[item][type]; | 
					
						
							|  |  |  |         return conf.required === required && conf.target === target; | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |       .map((item) => target + '_' + item.toUpperCase()); | 
					
						
							| 
									
										
										
										
											2015-12-10 14:40:00 +01:00
										 |  |  | } |