LCOV - code coverage report
Current view: top level - test_api-0.4.8/lib/src/backend - operating_system.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 3 13 23.1 %
Date: 2021-11-28 14:37:50 Functions: 0 0 -

          Line data    Source code
       1             : // Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
       2             : // for details. All rights reserved. Use of this source code is governed by a
       3             : // BSD-style license that can be found in the LICENSE file.
       4             : 
       5             : /// An enum of all operating systems supported by Dart.
       6             : ///
       7             : /// This is used for selecting which operating systems a test can run on. Even
       8             : /// for browser tests, this indicates the operating system of the machine
       9             : /// running the test runner.
      10             : class OperatingSystem {
      11             :   /// Microsoft Windows.
      12             :   static const windows = OperatingSystem._('Windows', 'windows');
      13             : 
      14             :   /// Mac OS X.
      15             :   static const macOS = OperatingSystem._('OS X', 'mac-os');
      16             : 
      17             :   /// GNU/Linux.
      18             :   static const linux = OperatingSystem._('Linux', 'linux');
      19             : 
      20             :   /// Android.
      21             :   ///
      22             :   /// Since this is the operating system the test runner is running on, this
      23             :   /// won't be true when testing remotely on an Android browser.
      24             :   static const android = OperatingSystem._('Android', 'android');
      25             : 
      26             :   /// iOS.
      27             :   ///
      28             :   /// Since this is the operating system the test runner is running on, this
      29             :   /// won't be true when testing remotely on an iOS browser.
      30             :   static const iOS = OperatingSystem._('iOS', 'ios');
      31             : 
      32             :   /// No operating system.
      33             :   ///
      34             :   /// This is used when running in the browser, or if an unrecognized operating
      35             :   /// system is used. It can't be referenced by name in platform selectors.
      36             :   static const none = OperatingSystem._('none', 'none');
      37             : 
      38             :   /// A list of all instances of [OperatingSystem] other than [none].
      39             :   static const all = [windows, macOS, linux, android, iOS];
      40             : 
      41             :   /// Finds an operating system by its name.
      42             :   ///
      43             :   /// If no operating system is found, returns [none].
      44          11 :   static OperatingSystem find(String identifier) =>
      45          44 :       all.firstWhere((platform) => platform.identifier == identifier,
      46           0 :           orElse: () => none);
      47             : 
      48             :   /// Finds an operating system by the return value from `dart:io`'s
      49             :   /// `Platform.operatingSystem`.
      50             :   ///
      51             :   /// If no operating system is found, returns [none].
      52           0 :   static OperatingSystem findByIoName(String name) {
      53             :     switch (name) {
      54           0 :       case 'windows':
      55             :         return windows;
      56           0 :       case 'macos':
      57             :         return macOS;
      58           0 :       case 'linux':
      59             :         return linux;
      60           0 :       case 'android':
      61             :         return android;
      62           0 :       case 'ios':
      63             :         return iOS;
      64             :       default:
      65             :         return none;
      66             :     }
      67             :   }
      68             : 
      69             :   /// The human-friendly of the operating system.
      70             :   final String name;
      71             : 
      72             :   /// The identifier used to look up the operating system.
      73             :   final String identifier;
      74             : 
      75             :   /// Whether this is a POSIX-ish operating system.
      76           0 :   bool get isPosix => this != windows && this != none;
      77             : 
      78          11 :   const OperatingSystem._(this.name, this.identifier);
      79             : 
      80           0 :   @override
      81           0 :   String toString() => name;
      82             : }

Generated by: LCOV version 1.14