| // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| // TODO(nweiz): support pluggable platforms. |
| /// An enum of all platforms on which tests can run. |
| class TestPlatform { |
| // When adding new platforms, be sure to update the baseline and derived |
| // variable tests in test/backend/platform_selector/evaluate_test. |
| |
| /// The command-line Dart VM. |
| static const TestPlatform vm = |
| const TestPlatform._("VM", "vm", isDartVM: true); |
| |
| /// Dartium. |
| static const TestPlatform dartium = const TestPlatform._("Dartium", "dartium", |
| isBrowser: true, isBlink: true, isDartVM: true); |
| |
| /// Dartium content shell. |
| static const TestPlatform contentShell = const TestPlatform._( |
| "Dartium Content Shell", "content-shell", |
| isBrowser: true, isBlink: true, isDartVM: true, isHeadless: true); |
| |
| /// Google Chrome. |
| static const TestPlatform chrome = const TestPlatform._("Chrome", "chrome", |
| isBrowser: true, isJS: true, isBlink: true); |
| |
| /// PhantomJS. |
| static const TestPlatform phantomJS = const TestPlatform._( |
| "PhantomJS", "phantomjs", |
| isBrowser: true, isJS: true, isBlink: true, isHeadless: true); |
| |
| /// Mozilla Firefox. |
| static const TestPlatform firefox = |
| const TestPlatform._("Firefox", "firefox", isBrowser: true, isJS: true); |
| |
| /// Apple Safari. |
| static const TestPlatform safari = |
| const TestPlatform._("Safari", "safari", isBrowser: true, isJS: true); |
| |
| /// Microsoft Internet Explorer. |
| static const TestPlatform internetExplorer = const TestPlatform._( |
| "Internet Explorer", "ie", |
| isBrowser: true, isJS: true); |
| |
| /// A list of all instances of [TestPlatform]. |
| static const List<TestPlatform> all = const [ |
| vm, |
| dartium, |
| contentShell, |
| chrome, |
| phantomJS, |
| firefox, |
| safari, |
| internetExplorer |
| ]; |
| |
| /// Finds a platform by its identifier string. |
| /// |
| /// If no platform is found, returns `null`. |
| static TestPlatform find(String identifier) => |
| all.firstWhere((platform) => platform.identifier == identifier, |
| orElse: () => null); |
| |
| /// The human-friendly name of the platform. |
| final String name; |
| |
| /// The identifier used to look up the platform. |
| final String identifier; |
| |
| /// Whether this platform runs the Dart VM in any capacity. |
| final bool isDartVM; |
| |
| /// Whether this platform is a browser. |
| final bool isBrowser; |
| |
| /// Whether this platform runs Dart compiled to JavaScript. |
| final bool isJS; |
| |
| /// Whether this platform uses the Blink rendering engine. |
| final bool isBlink; |
| |
| /// Whether this platform has no visible window. |
| final bool isHeadless; |
| |
| const TestPlatform._(this.name, this.identifier, |
| {this.isDartVM: false, |
| this.isBrowser: false, |
| this.isJS: false, |
| this.isBlink: false, |
| this.isHeadless: false}); |
| |
| String toString() => name; |
| } |