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

Unified Diff: test/to_string_test.dart

Issue 1712793002: Add the content of the package. (Closed) Base URL: git@github.com:dart-lang/boolean_selector@master
Patch Set: Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/scanner_test.dart ('k') | test/validate_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/to_string_test.dart
diff --git a/test/to_string_test.dart b/test/to_string_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..85721ac8b3f6c2912e50a271e9cb8027d6d2f299
--- /dev/null
+++ b/test/to_string_test.dart
@@ -0,0 +1,84 @@
+// Copyright (c) 2016, 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.
+
+import 'package:test/test.dart';
+
+import 'package:boolean_selector/boolean_selector.dart';
+
+void main() {
+ group("toString() for", () {
+ test("a variable is its name", () {
+ _expectToString("foo");
+ _expectToString("a-b");
+ });
+
+ group("not", () {
+ test("doesn't parenthesize a variable", () => _expectToString("!a"));
+ test("doesn't parenthesize a nested not", () => _expectToString("!!a"));
+ test("parenthesizes an or", () => _expectToString("!(a || b)"));
+ test("parenthesizes an and", () => _expectToString("!(a && b)"));
+ test("parenthesizes a condition", () => _expectToString("!(a ? b : c)"));
+ });
+
+ group("or", () {
+ test("doesn't parenthesize variables", () => _expectToString("a || b"));
+ test("doesn't parenthesize nots", () => _expectToString("!a || !b"));
+
+ test("doesn't parenthesize ors", () {
+ _expectToString("a || b || c || d");
+ _expectToString("((a || b) || c) || d", "a || b || c || d");
+ });
+
+ test("parenthesizes ands", () =>
+ _expectToString("a && b || c && d", "(a && b) || (c && d)"));
+
+ test("parenthesizes conditions", () =>
+ _expectToString("(a ? b : c) || (e ? f : g)"));
+ });
+
+ group("and", () {
+ test("doesn't parenthesize variables", () => _expectToString("a && b"));
+ test("doesn't parenthesize nots", () => _expectToString("!a && !b"));
+
+ test("parenthesizes ors", () =>
+ _expectToString("(a || b) && (c || d)", "(a || b) && (c || d)"));
+
+ test("doesn't parenthesize ands", () {
+ _expectToString("a && b && c && d");
+ _expectToString("((a && b) && c) && d", "a && b && c && d");
+ });
+
+ test("parenthesizes conditions", () =>
+ _expectToString("(a ? b : c) && (e ? f : g)"));
+ });
+
+ group("conditional", () {
+ test("doesn't parenthesize variables", () =>
+ _expectToString("a ? b : c"));
+
+ test("doesn't parenthesize nots", () => _expectToString("!a ? !b : !c"));
+
+ test("doesn't parenthesize ors", () =>
+ _expectToString("a || b ? c || d : e || f"));
+
+ test("doesn't parenthesize ands", () =>
+ _expectToString("a && b ? c && d : e && f"));
+
+ test("parenthesizes non-trailing conditions", () {
+ _expectToString("(a ? b : c) ? (e ? f : g) : h ? i : j");
+ _expectToString("(a ? b : c) ? (e ? f : g) : (h ? i : j)",
+ "(a ? b : c) ? (e ? f : g) : h ? i : j");
+ });
+ });
+ });
+}
+
+void _expectToString(String selector, [String result]) {
+ if (result == null) result = selector;
+ expect(_toString(selector), equals(result),
+ reason: 'Expected toString of "$selector" to be "$result".');
+}
+
+String _toString(String selector) =>
+ new BooleanSelector.parse(selector).toString();
« no previous file with comments | « test/scanner_test.dart ('k') | test/validate_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698