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

Unified Diff: tests/language_strong/assertion_test.dart

Issue 2971243003: fix #30094, assert should work with a function (Closed)
Patch Set: fix Created 3 years, 5 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
Index: tests/language_strong/assertion_test.dart
diff --git a/tests/language_strong/assertion_test.dart b/tests/language_strong/assertion_test.dart
index 68bdf04b1b72a6d1bee7304062cc1f4584e31c69..d1cc39b142c9a553e67c8310fe0a58151575c54b 100644
--- a/tests/language_strong/assertion_test.dart
+++ b/tests/language_strong/assertion_test.dart
@@ -7,71 +7,109 @@
import "package:expect/expect.dart";
-class AssertionTest {
- static testTrue() {
- int i = 0;
- try {
- assert(true);
- } on AssertionError catch (error) {
- i = 1;
- }
- return i;
+testTrue() {
Jennifer Messerly 2017/07/07 23:43:17 this test also matches VM behavior
+ int i = 0;
+ try {
+ assert(true);
+ } on AssertionError catch (error) {
+ i = 1;
}
+ return i;
+}
- static testFalse() {
- int i = 0;
- try {
- assert(false);
- } on AssertionError catch (error) {
- i = 1;
- }
- return i;
+testFalse() {
+ int i = 0;
+ try {
+ assert(false);
+ } on AssertionError catch (error) {
+ i = 1;
}
+ return i;
+}
+
+unknown(dynamic a) {
+ return a ? true : false;
+}
- static unknown(var a) {
- return (a) ? true : false;
+testClosureReturnsFalse() {
+ int i = 0;
+ try {
+ assert(() => false);
+ } on AssertionError catch (error) {
+ i = 1;
}
+ return i;
+}
- static testUnknown() {
- var x = unknown(false);
- int i = 0;
- try {
- assert(x);
- } on AssertionError catch (error) {
- i = 1;
- }
- return i;
+testClosure(bool f()) {
+ int i = 0;
+ try {
+ assert(f);
+ } on AssertionError catch (error) {
+ i = 1;
}
+ return i;
+}
- static testClosure() {
- int i = 0;
- try {
- assert(() => false);
- } on AssertionError catch (error) {
- i = 1;
- }
- return i;
+testBoolean(bool value) {
+ int i = 0;
+ try {
+ assert(value);
+ } on AssertionError catch (error) {
+ i = 1;
}
+ return i;
+}
- static testClosure2() {
- int i = 0;
- try {
- var x = () => false;
- assert(x);
- } on AssertionError catch (error) {
- i = 1;
- }
- return i;
+testDynamic(dynamic value) {
+ int i = 0;
+ try {
+ assert(value);
+ } on AssertionError catch (error) {
+ i = 1;
}
+ return i;
+}
- static testMain() {
- Expect.equals(0, testTrue());
- Expect.equals(1, testFalse());
- Expect.equals(1, testClosure());
- Expect.equals(1, testClosure2());
+testMessage(value, message) {
+ try {
+ assert(value, message);
+ return null;
+ } on AssertionError catch (error) {
+ return error;
}
}
main() {
- AssertionTest.testMain();
+ Expect.equals(0, testTrue());
+ Expect.equals(0, testBoolean(true));
+ Expect.equals(0, testDynamic(unknown(true)));
+ Expect.equals(0, testClosure(() => true));
+ Expect.equals(0, testDynamic(() => true));
+
+ Expect.equals(1, testFalse());
+ Expect.equals(1, testBoolean(false));
+ Expect.equals(1, testClosureReturnsFalse());
+ Expect.equals(1, testDynamic(unknown(false)));
+ Expect.equals(1, testDynamic(() => false));
+
+ Expect.equals(1, testBoolean(null));
+ Expect.equals(1, testDynamic(null));
+ Expect.equals(1, testDynamic(42));
+ Expect.equals(1, testDynamic(() => 42));
+ Expect.equals(1, testDynamic(() => null));
+ Expect.equals(1, testClosure(() => null));
+
+ Expect.equals(1234, testMessage(false, 1234).message);
+ Expect.equals('hi', testMessage(false, 'hi').message);
+ Expect.equals(1234, testMessage(() => false, 1234).message);
+ Expect.equals('hi', testMessage(() => false, 'hi').message);
+
+ // These errors do not have the message because boolean conversion failed.
+ Expect.equals(null, testMessage(null, 1234).message);
+ Expect.equals(null, testMessage(null, 'hi').message);
+ Expect.equals(null, testMessage(() => null, 1234).message);
+ Expect.equals(null, testMessage(() => null, 'hi').message);
+ Expect.isTrue("${testMessage(42, 1234)}".contains('boolean expression'));
+ Expect.isTrue("${testMessage(() => 1, 1234)}".contains('boolean expression'));
}

Powered by Google App Engine
This is Rietveld 408576698