| // Copyright 2016 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| import 'package:mdtest_tools/src/mobile/device_spec.dart'; |
| import 'package:mdtest_tools/src/mobile/device.dart'; |
| |
| import 'package:test/test.dart'; |
| |
| void main() { |
| group('device spec matches', () { |
| Device device; |
| |
| setUpAll(() { |
| device = new Device( |
| properties: <String, String>{ |
| 'platform': 'ios', |
| 'device-id': '123', |
| 'model-name': 'iPhone 6S Plus', |
| 'os-version': '9.3.4', |
| 'screen-size': 'large', |
| 'app-root': 'xxx', |
| 'app-path': 'yyy' |
| } |
| ); |
| }); |
| |
| test('platform matches', () { |
| DeviceSpec spec = new DeviceSpec( |
| 'Alice', |
| specProperties: <String, String>{ |
| 'platform': 'ios', |
| 'app-root': 'xxx', |
| 'app-path': 'yyy' |
| } |
| ); |
| expect(spec.matches(device), equals(true)); |
| }); |
| |
| test('platform does not match', () { |
| DeviceSpec spec = new DeviceSpec( |
| 'Alice', |
| specProperties: <String, String>{ |
| 'platform': 'android', |
| 'app-root': 'xxx', |
| 'app-path': 'yyy' |
| } |
| ); |
| expect(spec.matches(device), equals(false)); |
| }); |
| |
| test('device id matches', () { |
| DeviceSpec spec = new DeviceSpec( |
| 'Alice', |
| specProperties: <String, String>{ |
| 'device-id': '123', |
| 'app-root': 'xxx', |
| 'app-path': 'yyy' |
| } |
| ); |
| expect(spec.matches(device), equals(true)); |
| }); |
| |
| test('device id does not match', () { |
| DeviceSpec spec = new DeviceSpec( |
| 'Alice', |
| specProperties: <String, String>{ |
| 'device-id': '456', |
| 'app-root': 'xxx', |
| 'app-path': 'yyy' |
| } |
| ); |
| expect(spec.matches(device), equals(false)); |
| }); |
| |
| test('model name matches', () { |
| DeviceSpec spec = new DeviceSpec( |
| 'Alice', |
| specProperties: <String, String>{ |
| 'model-name': 'iPhone 6S Plus', |
| 'app-root': 'xxx', |
| 'app-path': 'yyy' |
| } |
| ); |
| expect(spec.matches(device), equals(true)); |
| }); |
| |
| test('model name does not match', () { |
| DeviceSpec spec = new DeviceSpec( |
| 'Alice', |
| specProperties: <String, String>{ |
| 'model-name': 'iPhone 5', |
| 'app-root': 'xxx', |
| 'app-path': 'yyy' |
| } |
| ); |
| expect(spec.matches(device), equals(false)); |
| }); |
| |
| test('os version matches', () { |
| DeviceSpec spec = new DeviceSpec( |
| 'Alice', |
| specProperties: <String, String>{ |
| 'platform': 'ios', |
| 'os-version': '>=9.3.4', |
| 'app-root': 'xxx', |
| 'app-path': 'yyy' |
| } |
| ); |
| expect(spec.matches(device), equals(true)); |
| }); |
| |
| test('os version does not match', () { |
| DeviceSpec spec = new DeviceSpec( |
| 'Alice', |
| specProperties: <String, String>{ |
| 'platform': 'ios', |
| 'os-version': '>9.4.0', |
| 'app-root': 'xxx', |
| 'app-path': 'yyy' |
| } |
| ); |
| expect(spec.matches(device), equals(false)); |
| }); |
| |
| test('os version matches', () { |
| DeviceSpec spec = new DeviceSpec( |
| 'Alice', |
| specProperties: <String, String>{ |
| 'screen-size': 'large', |
| 'app-root': 'xxx', |
| 'app-path': 'yyy' |
| } |
| ); |
| expect(spec.matches(device), equals(true)); |
| }); |
| |
| test('os version does not match', () { |
| DeviceSpec spec = new DeviceSpec( |
| 'Alice', |
| specProperties: <String, String>{ |
| 'screen-size': 'normal', |
| 'app-root': 'xxx', |
| 'app-path': 'yyy' |
| } |
| ); |
| expect(spec.matches(device), equals(false)); |
| }); |
| }); |
| } |