OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 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 | 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 async_await_test; | 5 library async_await_test; |
6 | 6 |
7 import "package:unittest/unittest.dart"; | 7 import "package:unittest/unittest.dart"; |
8 import "dart:async"; | 8 import "dart:async"; |
9 | 9 |
10 main() { | 10 main() { |
(...skipping 1713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1724 test("top-level getter call", () { | 1724 test("top-level getter call", () { |
1725 f() async { | 1725 f() async { |
1726 var a = new Async(); | 1726 var a = new Async(); |
1727 return await a.instanceGetter; | 1727 return await a.instanceGetter; |
1728 } | 1728 } |
1729 return expect42(f()); | 1729 return expect42(f()); |
1730 }); | 1730 }); |
1731 | 1731 |
1732 if (!checkedMode) return; | 1732 if (!checkedMode) return; |
1733 | 1733 |
1734 test("inside assert, true", () { // /// 03: ok | 1734 test("inside assert, true", () { // //# 03: ok |
1735 f() async { // /// 03: continued | 1735 f() async { // //# 03: continued |
1736 assert(await new Future.microtask(() => true)); // /// 03: continued | 1736 assert(await new Future.microtask(() => true)); // //# 03: continued |
1737 return 42; // /// 03: continued | 1737 return 42; // //# 03: continued |
1738 } // /// 03: continued | 1738 } // //# 03: continued |
1739 return expect42(f()); // /// 03: continued | 1739 return expect42(f()); // //# 03: continued |
1740 }); // /// 03: continued | 1740 }); // //# 03: continued |
1741 | 1741 |
1742 test("inside assert, false", () { // /// 03: continued | 1742 test("inside assert, false", () { // //# 03: continued |
1743 f() async { // /// 03: continued | 1743 f() async { // //# 03: continued |
1744 assert(await new Future.microtask(() => false)); // /// 03: continued | 1744 assert(await new Future.microtask(() => false)); // //# 03: continued |
1745 return 42; // /// 03: continued | 1745 return 42; // //# 03: continued |
1746 } // /// 03: continued | 1746 } // //# 03: continued |
1747 return f().then((_) { // /// 03: continued | 1747 return f().then((_) { // //# 03: continued |
1748 fail("assert didn't throw"); // /// 03: continued | 1748 fail("assert didn't throw"); // //# 03: continued |
1749 }, onError: (e, s) { // /// 03: continued | 1749 }, onError: (e, s) { // //# 03: continued |
1750 expect(e is AssertionError, isTrue); // /// 03: continued | 1750 expect(e is AssertionError, isTrue); // //# 03: continued |
1751 }); // /// 03: continued | 1751 }); // //# 03: continued |
1752 }); // /// 03: continued | 1752 }); // //# 03: continued |
1753 | 1753 |
1754 test("inside assert, function -> false", () { // /// 03: continued | 1754 test("inside assert, function -> false", () { // //# 03: continued |
1755 f() async { // /// 03: continued | 1755 f() async { // //# 03: continued |
1756 assert(await new Future.microtask(() => false)); // /// 03: continued | 1756 assert(await new Future.microtask(() => false)); // //# 03: continued |
1757 return 42; // /// 03: continued | 1757 return 42; // //# 03: continued |
1758 } // /// 03: continued | 1758 } // //# 03: continued |
1759 return f().then((_) { // /// 03: continued | 1759 return f().then((_) { // //# 03: continued |
1760 fail("assert didn't throw"); // /// 03: continued | 1760 fail("assert didn't throw"); // //# 03: continued |
1761 }, onError: (e, s) { // /// 03: continued | 1761 }, onError: (e, s) { // //# 03: continued |
1762 expect(e is AssertionError, isTrue); // /// 03: continued | 1762 expect(e is AssertionError, isTrue); // //# 03: continued |
1763 }); // /// 03: continued | 1763 }); // //# 03: continued |
1764 }); // /// 03: continued | 1764 }); // //# 03: continued |
1765 | 1765 |
1766 }); | 1766 }); |
1767 | 1767 |
1768 group("syntax", () { | 1768 group("syntax", () { |
1769 test("async as variable", () { | 1769 test("async as variable", () { |
1770 // Valid identifiers outside of async function. | 1770 // Valid identifiers outside of async function. |
1771 var async = 42; | 1771 var async = 42; |
1772 expect(async, equals(42)); | 1772 expect(async, equals(42)); |
1773 }); | 1773 }); |
1774 | 1774 |
1775 test("await as variable", () { // /// 02: ok | 1775 test("await as variable", () { // //# 02: ok |
1776 // Valid identifiers outside of async function. // /// 02: continued | 1776 // Valid identifiers outside of async function. // //# 02: continued |
1777 var await = 42; // /// 02: continued | 1777 var await = 42; // //# 02: continued |
1778 expect(await, equals(42)); // /// 02: continued | 1778 expect(await, equals(42)); // //# 02: continued |
1779 }); // /// 02: continued | 1779 }); // //# 02: continued |
1780 | 1780 |
1781 test("yield as variable", () { | 1781 test("yield as variable", () { |
1782 // Valid identifiers outside of async function. | 1782 // Valid identifiers outside of async function. |
1783 var yield = 42; | 1783 var yield = 42; |
1784 expect(yield, equals(42)); | 1784 expect(yield, equals(42)); |
1785 }); | 1785 }); |
1786 }); | 1786 }); |
1787 } | 1787 } |
1788 | 1788 |
1789 | 1789 |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2002 if (onError is BinaryFunction) { | 2002 if (onError is BinaryFunction) { |
2003 return onError(_error, null); | 2003 return onError(_error, null); |
2004 } | 2004 } |
2005 return onError(_error); | 2005 return onError(_error); |
2006 }); | 2006 }); |
2007 } | 2007 } |
2008 Stream asStream() => | 2008 Stream asStream() => |
2009 (new StreamController()..addError(_error)..close()).stream; | 2009 (new StreamController()..addError(_error)..close()).stream; |
2010 Future timeout(Duration duration, {onTimeout()}) => this; | 2010 Future timeout(Duration duration, {onTimeout()}) => this; |
2011 } | 2011 } |
OLD | NEW |