mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
# Copyright 2014 The Chromium 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 mojo_unittest
|
|
|
|
# pylint: disable=E0611
|
|
import mojo_system as system
|
|
|
|
|
|
def _Increment(array):
|
|
def _Closure():
|
|
array.append(0)
|
|
return _Closure
|
|
|
|
|
|
class RunLoopTest(mojo_unittest.MojoTestCase):
|
|
|
|
def testRunLoop(self):
|
|
array = []
|
|
for _ in xrange(10):
|
|
self.loop.PostDelayedTask(_Increment(array))
|
|
self.loop.RunUntilIdle()
|
|
self.assertEquals(len(array), 10)
|
|
|
|
def testRunLoopWithException(self):
|
|
def Throw():
|
|
raise Exception("error")
|
|
array = []
|
|
self.loop.PostDelayedTask(Throw)
|
|
self.loop.PostDelayedTask(_Increment(array))
|
|
with self.assertRaisesRegexp(Exception, '^error$'):
|
|
self.loop.Run()
|
|
self.assertEquals(len(array), 0)
|
|
self.loop.RunUntilIdle()
|
|
self.assertEquals(len(array), 1)
|
|
|
|
def testCurrent(self):
|
|
self.assertEquals(system.RunLoop.Current(), self.loop)
|
|
self.loop = None
|
|
self.assertIsNone(system.RunLoop.Current())
|