Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Side by Side Diff: tests/standalone/status_expression_test.dart

Issue 2901923003: Replace the configuration map with a typed object. (Closed)
Patch Set: Revise. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests/standalone/standalone.status ('k') | tools/testing/dart/browser_controller.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library StatusExpressionTest; 5 import "package:expect/expect.dart";
6 6
7 import "package:expect/expect.dart"; 7 import "../../tools/testing/dart/environment.dart";
8 import "../../tools/testing/dart/status_expression.dart"; 8 import "../../tools/testing/dart/status_expression.dart";
9 9
10 class TestEnvironment implements Environment {
11 final Map<String, String> _values;
12
13 TestEnvironment(this._values);
14
15 /// Looks up the value of the variable with [name].
16 String lookUp(String name) => _values[name];
17
18 operator []=(String key, String value) => _values[key] = value;
19 }
20
10 main() { 21 main() {
11 testExpression(); 22 testExpression();
12 testSyntaxError(); 23 testSyntaxError();
13 testBoolean(); 24 testBoolean();
14 testNotEqual(); 25 testNotEqual();
15 } 26 }
16 27
17 void testExpression() { 28 void testExpression() {
18 var expression = Expression 29 var expression = Expression
19 .parse(r" $mode == debug && ($arch == chromium || $arch == dartc) "); 30 .parse(r" $mode == debug && ($arch == chromium || $arch == dartc) ");
20 Expect.equals( 31 Expect.equals(
21 r"(($mode == debug) && (($arch == chromium) || ($arch == dartc)))", 32 r"(($mode == debug) && (($arch == chromium) || ($arch == dartc)))",
22 expression.toString()); 33 expression.toString());
23 34
24 // Test BooleanExpression.evaluate(). 35 // Test BooleanExpression.evaluate().
25 var environment = <String, dynamic>{"arch": "dartc", "mode": "debug"}; 36 var environment = new TestEnvironment({"arch": "dartc", "mode": "debug"});
26 37
27 Expect.isTrue(expression.evaluate(environment)); 38 Expect.isTrue(expression.evaluate(environment));
28 environment["mode"] = "release"; 39 environment["mode"] = "release";
29 Expect.isFalse(expression.evaluate(environment)); 40 Expect.isFalse(expression.evaluate(environment));
30 environment["arch"] = "ia32"; 41 environment["arch"] = "ia32";
31 Expect.isFalse(expression.evaluate(environment)); 42 Expect.isFalse(expression.evaluate(environment));
32 environment["mode"] = "debug"; 43 environment["mode"] = "debug";
33 Expect.isFalse(expression.evaluate(environment)); 44 Expect.isFalse(expression.evaluate(environment));
34 environment["arch"] = "chromium"; 45 environment["arch"] = "chromium";
35 Expect.isTrue(expression.evaluate(environment)); 46 Expect.isTrue(expression.evaluate(environment));
36 } 47 }
37 48
38 void testSyntaxError() { 49 void testSyntaxError() {
39 var input = r"($arch == (-dartc || $arch == chromium) && $mode == release"; 50 var input = r"($arch == (-dartc || $arch == chromium) && $mode == release";
40 Expect.throws(() { 51 Expect.throws(() {
41 Expression.parse(input); 52 Expression.parse(input);
42 }, (e) => e.toString() == "FormatException: Syntax error in '$input'"); 53 }, (e) => e.toString() == "FormatException: Syntax error in '$input'");
43 } 54 }
44 55
45 void testBoolean() { 56 void testBoolean() {
46 var expression = 57 var expression =
47 Expression.parse(r" $arch == ia32 && $checked || $mode == release "); 58 Expression.parse(r" $arch == ia32 && $checked || $mode == release ");
48 Expect.equals(r"((($arch == ia32) && (bool $checked)) || ($mode == release))", 59 Expect.equals(r"((($arch == ia32) && (bool $checked)) || ($mode == release))",
49 expression.toString()); 60 expression.toString());
50 61
51 // Test BooleanExpression.evaluate(). 62 // Test BooleanExpression.evaluate().
52 var environment = <String, dynamic>{ 63 var environment =
53 "arch": "ia32", 64 new TestEnvironment({"arch": "ia32", "checked": "true", "mode": "debug"});
54 "checked": true,
55 "mode": "debug"
56 };
57 65
58 Expect.isTrue(expression.evaluate(environment)); 66 Expect.isTrue(expression.evaluate(environment));
59 environment["mode"] = "release"; 67 environment["mode"] = "release";
60 Expect.isTrue(expression.evaluate(environment)); 68 Expect.isTrue(expression.evaluate(environment));
61 environment["checked"] = false; 69 environment["checked"] = false;
62 Expect.isTrue(expression.evaluate(environment)); 70 Expect.isTrue(expression.evaluate(environment));
63 environment["mode"] = "debug"; 71 environment["mode"] = "debug";
64 Expect.isFalse(expression.evaluate(environment)); 72 Expect.isFalse(expression.evaluate(environment));
65 environment["arch"] = "arm"; 73 environment["arch"] = "arm";
66 Expect.isFalse(expression.evaluate(environment)); 74 Expect.isFalse(expression.evaluate(environment));
67 environment["checked"] = true; 75 environment["checked"] = true;
68 Expect.isFalse(expression.evaluate(environment)); 76 Expect.isFalse(expression.evaluate(environment));
69 } 77 }
70 78
71 void testNotEqual() { 79 void testNotEqual() {
72 // Test the != operator. 80 // Test the != operator.
73 var expression = Expression.parse(r"$compiler == dart2js && $runtime != ie9"); 81 var expression = Expression.parse(r"$compiler == dart2js && $runtime != ie9");
74 Expect.equals( 82 Expect.equals(
75 r"(($compiler == dart2js) && ($runtime != ie9))", expression.toString()); 83 r"(($compiler == dart2js) && ($runtime != ie9))", expression.toString());
76 84
77 // Test BooleanExpression.evaluate(). 85 // Test BooleanExpression.evaluate().
78 var environment = <String, dynamic>{ 86 var environment = new TestEnvironment({
79 "compiler": "none", 87 "compiler": "none",
80 "runtime": "ie9", 88 "runtime": "ie9",
81 }; 89 });
82 90
83 Expect.isFalse(expression.evaluate(environment)); 91 Expect.isFalse(expression.evaluate(environment));
84 environment["runtime"] = "chrome"; 92 environment["runtime"] = "chrome";
85 Expect.isFalse(expression.evaluate(environment)); 93 Expect.isFalse(expression.evaluate(environment));
86 94
87 environment["compiler"] = "dart2js"; 95 environment["compiler"] = "dart2js";
88 environment["runtime"] = "ie9"; 96 environment["runtime"] = "ie9";
89 Expect.isFalse(expression.evaluate(environment)); 97 Expect.isFalse(expression.evaluate(environment));
90 environment["runtime"] = "chrome"; 98 environment["runtime"] = "chrome";
91 Expect.isTrue(expression.evaluate(environment)); 99 Expect.isTrue(expression.evaluate(environment));
92 } 100 }
OLDNEW
« no previous file with comments | « tests/standalone/standalone.status ('k') | tools/testing/dart/browser_controller.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698