Index: third_party/closure_compiler/compiler_customization_test.py |
diff --git a/third_party/closure_compiler/compiler_customization_test.py b/third_party/closure_compiler/compiler_customization_test.py |
deleted file mode 100755 |
index 9873c8fe6c9018b8b19649ae7183a4f432108db9..0000000000000000000000000000000000000000 |
--- a/third_party/closure_compiler/compiler_customization_test.py |
+++ /dev/null |
@@ -1,240 +0,0 @@ |
-#!/usr/bin/env 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 os |
-import unittest |
- |
-from compile import Checker |
-from processor import FileCache, Processor |
- |
- |
-_SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) |
-_SRC_DIR = os.path.join(_SCRIPT_DIR, os.pardir, os.pardir) |
-_RESOURCES_DIR = os.path.join(_SRC_DIR, "ui", "webui", "resources", "js") |
-_ASSERT_JS = os.path.join(_RESOURCES_DIR, "assert.js") |
-_CR_JS = os.path.join(_RESOURCES_DIR, "cr.js") |
-_CR_UI_JS = os.path.join(_RESOURCES_DIR, "cr", "ui.js") |
-_POLYMER_EXTERNS = os.path.join(_SRC_DIR, "third_party", "polymer", "v0_8", |
- "components-chromium", "polymer-externs", |
- "polymer.externs.js") |
- |
- |
-class CompilerCustomizationTest(unittest.TestCase): |
- _ASSERT_DEFINITION = Processor(_ASSERT_JS).contents |
- _CR_DEFINE_DEFINITION = Processor(_CR_JS).contents |
- _CR_UI_DECORATE_DEFINITION = Processor(_CR_UI_JS).contents |
- |
- def setUp(self): |
- self._checker = Checker() |
- |
- def _runChecker(self, source_code): |
- file_path = "/script.js" |
- FileCache._cache[file_path] = source_code |
- return self._checker.check(file_path, externs=[_POLYMER_EXTERNS]) |
- |
- def _runCheckerTestExpectError(self, source_code, expected_error): |
- _, stderr = self._runChecker(source_code) |
- |
- self.assertTrue(expected_error in stderr, |
- msg="Expected chunk: \n%s\n\nOutput:\n%s\n" % ( |
- expected_error, stderr)) |
- |
- def _runCheckerTestExpectSuccess(self, source_code): |
- found_errors, stderr = self._runChecker(source_code) |
- |
- self.assertFalse(found_errors, |
- msg="Expected success, but got failure\n\nOutput:\n%s\n" % stderr) |
- |
- def testGetInstance(self): |
- self._runCheckerTestExpectError(""" |
-var cr = { |
- /** @param {!Function} ctor */ |
- addSingletonGetter: function(ctor) { |
- ctor.getInstance = function() { |
- return ctor.instance_ || (ctor.instance_ = new ctor()); |
- }; |
- } |
-}; |
- |
-/** @constructor */ |
-function Class() { |
- /** @param {number} num */ |
- this.needsNumber = function(num) {}; |
-} |
- |
-cr.addSingletonGetter(Class); |
-Class.getInstance().needsNumber("wrong type"); |
-""", "ERROR - actual parameter 1 of Class.needsNumber does not match formal " |
- "parameter") |
- |
- def testCrDefineFunctionDefinition(self): |
- self._runCheckerTestExpectError(self._CR_DEFINE_DEFINITION + """ |
-cr.define('a.b.c', function() { |
- /** @param {number} num */ |
- function internalName(num) {} |
- |
- return { |
- needsNumber: internalName |
- }; |
-}); |
- |
-a.b.c.needsNumber("wrong type"); |
-""", "ERROR - actual parameter 1 of a.b.c.needsNumber does not match formal " |
- "parameter") |
- |
- def testCrDefineFunctionAssignment(self): |
- self._runCheckerTestExpectError(self._CR_DEFINE_DEFINITION + """ |
-cr.define('a.b.c', function() { |
- /** @param {number} num */ |
- var internalName = function(num) {}; |
- |
- return { |
- needsNumber: internalName |
- }; |
-}); |
- |
-a.b.c.needsNumber("wrong type"); |
-""", "ERROR - actual parameter 1 of a.b.c.needsNumber does not match formal " |
- "parameter") |
- |
- def testCrDefineConstructorDefinitionPrototypeMethod(self): |
- self._runCheckerTestExpectError(self._CR_DEFINE_DEFINITION + """ |
-cr.define('a.b.c', function() { |
- /** @constructor */ |
- function ClassInternalName() {} |
- |
- ClassInternalName.prototype = { |
- /** @param {number} num */ |
- method: function(num) {} |
- }; |
- |
- return { |
- ClassExternalName: ClassInternalName |
- }; |
-}); |
- |
-new a.b.c.ClassExternalName().method("wrong type"); |
-""", "ERROR - actual parameter 1 of a.b.c.ClassExternalName.prototype.method " |
- "does not match formal parameter") |
- |
- def testCrDefineConstructorAssignmentPrototypeMethod(self): |
- self._runCheckerTestExpectError(self._CR_DEFINE_DEFINITION + """ |
-cr.define('a.b.c', function() { |
- /** @constructor */ |
- var ClassInternalName = function() {}; |
- |
- ClassInternalName.prototype = { |
- /** @param {number} num */ |
- method: function(num) {} |
- }; |
- |
- return { |
- ClassExternalName: ClassInternalName |
- }; |
-}); |
- |
-new a.b.c.ClassExternalName().method("wrong type"); |
-""", "ERROR - actual parameter 1 of a.b.c.ClassExternalName.prototype.method " |
- "does not match formal parameter") |
- |
- def testCrDefineEnum(self): |
- self._runCheckerTestExpectError(self._CR_DEFINE_DEFINITION + """ |
-cr.define('a.b.c', function() { |
- /** @enum {string} */ |
- var internalNameForEnum = {key: 'wrong_type'}; |
- |
- return { |
- exportedEnum: internalNameForEnum |
- }; |
-}); |
- |
-/** @param {number} num */ |
-function needsNumber(num) {} |
- |
-needsNumber(a.b.c.exportedEnum.key); |
-""", "ERROR - actual parameter 1 of needsNumber does not match formal " |
- "parameter") |
- |
- def testObjectDefineProperty(self): |
- self._runCheckerTestExpectSuccess(""" |
-/** @constructor */ |
-function Class() {} |
- |
-Object.defineProperty(Class.prototype, 'myProperty', {}); |
- |
-alert(new Class().myProperty); |
-""") |
- |
- def testCrDefineProperty(self): |
- self._runCheckerTestExpectSuccess(self._CR_DEFINE_DEFINITION + """ |
-/** @constructor */ |
-function Class() {} |
- |
-cr.defineProperty(Class.prototype, 'myProperty', cr.PropertyKind.JS); |
- |
-alert(new Class().myProperty); |
-""") |
- |
- def testCrDefinePropertyTypeChecking(self): |
- self._runCheckerTestExpectError(self._CR_DEFINE_DEFINITION + """ |
-/** @constructor */ |
-function Class() {} |
- |
-cr.defineProperty(Class.prototype, 'booleanProp', cr.PropertyKind.BOOL_ATTR); |
- |
-/** @param {number} num */ |
-function needsNumber(num) {} |
- |
-needsNumber(new Class().booleanProp); |
-""", "ERROR - actual parameter 1 of needsNumber does not match formal " |
- "parameter") |
- |
- def testCrDefineOnCrWorks(self): |
- self._runCheckerTestExpectSuccess(self._CR_DEFINE_DEFINITION + """ |
-cr.define('cr', function() { |
- return {}; |
-}); |
-""") |
- |
- def testAssertWorks(self): |
- self._runCheckerTestExpectSuccess(self._ASSERT_DEFINITION + """ |
-/** @return {?string} */ |
-function f() { |
- return "string"; |
-} |
- |
-/** @type {!string} */ |
-var a = assert(f()); |
-""") |
- |
- def testAssertInstanceofWorks(self): |
- self._runCheckerTestExpectSuccess(self._ASSERT_DEFINITION + """ |
-/** @constructor */ |
-function Class() {} |
- |
-/** @return {Class} */ |
-function f() { |
- var a = document.createElement('div'); |
- return assertInstanceof(a, Class); |
-} |
-""") |
- |
- def testCrUiDecorateWorks(self): |
- self._runCheckerTestExpectSuccess(self._CR_DEFINE_DEFINITION + |
- self._CR_UI_DECORATE_DEFINITION + """ |
-/** @constructor */ |
-function Class() {} |
- |
-/** @return {Class} */ |
-function f() { |
- var a = document.createElement('div'); |
- cr.ui.decorate(a, Class); |
- return a; |
-} |
-""") |
- |
- |
-if __name__ == "__main__": |
- unittest.main() |