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

Unified Diff: src/chrome_app/apis_test.py

Issue 1685693004: Chrome URL bugfix + added tests for chrome_app.apis. (Closed) Base URL: https://github.com/chromium/caterpillar.git@master
Patch Set: Line consistency fix. 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
Index: src/chrome_app/apis_test.py
diff --git a/src/chrome_app/apis_test.py b/src/chrome_app/apis_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..a5f10b97476a0b004eddc591af6860781fc2f90d
--- /dev/null
+++ b/src/chrome_app/apis_test.py
@@ -0,0 +1,112 @@
+#!/usr/bin/env python2
+# -*- coding: utf-8 -*-
+
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Unit-test chrome_app.apis."""
+
+from __future__ import print_function, division, unicode_literals
Matt Giuca 2016/02/11 02:17:12 This test file doesn't belong in a bugfix CL. Can
+
+import collections
+import os
+import sys
+import unittest
+
+import mock
+
+import caterpillar_test
+import chrome_app.apis
+
+ROOT_DIR = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
+
+class TestApiMemberUsed(unittest.TestCase):
+ """Tests api_member_used."""
+
+ def test_no_member(self):
+ """Tests that if there is no member, None is returned."""
+ line = 'hello world, this is some téśt data!'
+ member = chrome_app.apis.api_member_used(line)
+ self.assertIsNone(member)
+
+ line = 'hello world, this is some téśt data!'
+ member = chrome_app.apis.api_member_used(line)
+ self.assertIsNone(member)
+
+ def test_api_member(self):
+ """Tests that a member is picked up in the input string."""
+ line = 'hello world, this test data uses chrome.tts.speak, test test.'
+ member = chrome_app.apis.api_member_used(line)
+ self.assertEqual(member, 'tts.speak')
+
+ line = 'this test data uses chrome.app.runtime.onLaunched, test test.'
+ member = chrome_app.apis.api_member_used(line)
+ self.assertEqual(member, 'app.runtime.onLaunched')
+
+ def test_chrome_url(self):
+ """Tests that chrome.google.com is not picked up as an API."""
+ line = 'test test chrome.google.com test test'
+ member = chrome_app.apis.api_member_used(line)
+ self.assertIsNone(member)
+
+
+class TestAppApis(caterpillar_test.TestCaseWithOutputDir):
+ """Tests app_apis."""
+
+ def test_correct_output(self):
+ apis = chrome_app.apis.app_apis(self.output_path)
+ self.assertEqual(apis, [
+ 'app.runtime',
+ 'app.window',
+ 'power',
+ ])
+
+
+class TestUsage(caterpillar_test.TestCaseWithOutputDir):
+ """Tests usage."""
+
+ def test_no_apis(self):
+ """Tests that if no APIs are provided, no usages are found."""
+ usage = chrome_app.apis.usage([], self.output_path)
+ self.assertEqual(usage, {})
+
+ def test_correct_output(self):
+ self.maxDiff = None
+ usage = chrome_app.apis.usage(['app.runtime', 'app.window', 'power'],
+ self.output_path)
+ self.assertEqual(usage, {
+ 'app.runtime': collections.defaultdict(list, {'onLaunched.addListener': [(
+ 'my scrípt.js', 0,
+ """chrome.app.runtime.onLaunched.addListener(function() {
+ chrome.app.window.create('my índex.html');
+});
+""", 0)]}),
+ 'app.window': collections.defaultdict(list, {'create': [(
+ 'my scrípt.js', 1,
+ """chrome.app.runtime.onLaunched.addListener(function() {
+ chrome.app.window.create('my índex.html');
+});
+""", 0)]}),
+ 'power': collections.defaultdict(list, {'requestKeepAwake': [(
+ 'mý other script.js', 1,
+ """// keep awakes
+chrome.power.requestKeepAwake();
+// the user is now awake
+notAChromeAppCall();
+""", 0)]}),
+ })
+
+
+if __name__ == '__main__':
+ unittest.main()
« src/chrome_app/apis.py ('K') | « src/chrome_app/apis.py ('k') | src/report/report_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698