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

Unified Diff: tools/cc-frame-viewer/third_party/py-chrome-app/chromeapp_unittest.py

Issue 12225131: [cc] Initial checkin of cc-frame-viewer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 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
Index: tools/cc-frame-viewer/third_party/py-chrome-app/chromeapp_unittest.py
diff --git a/tools/cc-frame-viewer/third_party/py-chrome-app/chromeapp_unittest.py b/tools/cc-frame-viewer/third_party/py-chrome-app/chromeapp_unittest.py
new file mode 100644
index 0000000000000000000000000000000000000000..d5a15ee1bda493ac4356a216f825f6cf9dbebe3a
--- /dev/null
+++ b/tools/cc-frame-viewer/third_party/py-chrome-app/chromeapp_unittest.py
@@ -0,0 +1,111 @@
+# Copyright (c) 2012 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 os
+import shutil
+import tempfile
+import unittest
+
+import chromeapp
+
+unittest_data_dir = os.path.relpath(
+ os.path.join(
+ os.path.dirname(__file__),
+ 'unittest_data'))
+
+class TrackingAppInstance(chromeapp.AppInstance):
+ def __init__(self, *args):
+ super(TrackingAppInstance, self).__init__(*args)
+ self.did_install = False
+
+ def _Install(self, *args):
+ self.did_install = True
+ return super(TrackingAppInstance, self)._Install(*args)
+
+class AppTest(unittest.TestCase):
+ def setUp(self):
+ self._profiles_dir = tempfile.mkdtemp()
+
+ def tearDown(self):
+ shutil.rmtree(self._profiles_dir, ignore_errors=True)
+
+ def testBasic(self):
+ manifest_file = os.path.join(unittest_data_dir,
+ 'simple-working-app', 'manifest.json')
+ app = chromeapp.App('simple-working-app',
+ manifest_file,
+ chromeapp_profiles_dir=self._profiles_dir)
+ with TrackingAppInstance(app, ['hello']) as app_instance:
+ ret = app_instance.Run()
+ self.assertEquals(ret, 42)
+
+ def testLaunchAndLaunchAgain(self):
+ manifest_file = os.path.join(unittest_data_dir,
+ 'simple-working-app', 'manifest.json')
+ app = chromeapp.App('simple-working-app',
+ manifest_file,
+ chromeapp_profiles_dir=self._profiles_dir)
+ with TrackingAppInstance(app, ['hello']) as app_instance:
+ ret = app_instance.Run()
+ self.assertEquals(ret, 42)
+
+ with TrackingAppInstance(app, ['hello']) as app_instance:
+ ret = app_instance.Run()
+ assert app_instance.did_install == False
+ self.assertEquals(ret, 42)
+
+ def testAppSideUncaughtErrorObject(self):
+ manifest_file = os.path.join(unittest_data_dir,
+ 'intentionally-failing-app', 'manifest.json')
+ app = chromeapp.App('intentionally-failing-app',
+ manifest_file,
+ chromeapp_profiles_dir=self._profiles_dir)
+ test = self
+ class MyAppInstance(chromeapp.AppInstance):
+ def _OnUncaughtError(self, error):
+ try:
+ test.assertEquals(error['error'], 'Uncaught Error: intentional failure')
+ finally:
+ self.ExitRunLoop(0)
+ with MyAppInstance(app, '--throw-error-object') as app_instance:
+ ret = app_instance.Run()
+
+ def testAppThatPrints(self):
+ manifest_file = os.path.join(unittest_data_dir,
+ 'app-that-prints', 'manifest.json')
+ app = chromeapp.App('app-that-prints',
+ manifest_file,
+ chromeapp_profiles_dir=self._profiles_dir)
+ test = self
+ class MyAppInstance(chromeapp.AppInstance):
+ def _OnPrint(self, contents):
+ try:
+ test.assertEquals(len(contents), 1)
+ test.assertEquals(contents[0], 'Hello world')
+ finally:
+ self.ExitRunLoop(0)
+ with MyAppInstance(app) as app_instance:
+ ret = app_instance.Run()
+
+ def testAppThatSendsEvent(self):
+ manifest_file = os.path.join(unittest_data_dir,
+ 'app-that-sends-event', 'manifest.json')
+ app = chromeapp.App('app-that-sends-event',
+ manifest_file,
+ chromeapp_profiles_dir=self._profiles_dir)
+ got_event = [False]
+ def OnEvent(args):
+ arg1, arg2 = args
+ self.assertEquals(arg1, [1, 2, 3])
+ self.assertEquals(arg2, True)
+ got_event[0] = True
+ return [314, 'hi']
+
+ with chromeapp.AppInstance(app) as app_instance:
+ self.assertFalse(app_instance.HasListener('hello-world', OnEvent))
+ app_instance.AddListener('hello-world', OnEvent)
+ self.assertTrue(app_instance.HasListener('hello-world', OnEvent))
+ ret = app_instance.Run()
+ self.assertEquals(0, ret)
+ app_instance.RemoveListener('hello-world', OnEvent)
+ self.assertTrue(got_event[0])

Powered by Google App Engine
This is Rietveld 408576698