Index: third_party/closure_linter/closure_linter/aliaspass_test.py |
diff --git a/third_party/closure_linter/closure_linter/aliaspass_test.py b/third_party/closure_linter/closure_linter/aliaspass_test.py |
deleted file mode 100644 |
index 7042e5348763cb471b3c49ba056a5e7369ff5100..0000000000000000000000000000000000000000 |
--- a/third_party/closure_linter/closure_linter/aliaspass_test.py |
+++ /dev/null |
@@ -1,191 +0,0 @@ |
-#!/usr/bin/env python |
-# |
-# Copyright 2012 The Closure Linter Authors. 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 tests for the aliaspass module.""" |
- |
-# Allow non-Google copyright |
-# pylint: disable=g-bad-file-header |
- |
-__author__ = ('nnaze@google.com (Nathan Naze)') |
- |
-import unittest as googletest |
- |
-from closure_linter import aliaspass |
-from closure_linter import errors |
-from closure_linter import javascriptstatetracker |
-from closure_linter import testutil |
-from closure_linter.common import erroraccumulator |
- |
- |
-def _GetTokenByLineAndString(start_token, string, line_number): |
- for token in start_token: |
- if token.line_number == line_number and token.string == string: |
- return token |
- |
- |
-class AliasPassTest(googletest.TestCase): |
- |
- def testInvalidGoogScopeCall(self): |
- start_token = testutil.TokenizeSourceAndRunEcmaPass(_TEST_SCOPE_SCRIPT) |
- |
- error_accumulator = erroraccumulator.ErrorAccumulator() |
- alias_pass = aliaspass.AliasPass( |
- error_handler=error_accumulator) |
- alias_pass.Process(start_token) |
- |
- alias_errors = error_accumulator.GetErrors() |
- self.assertEquals(1, len(alias_errors)) |
- |
- alias_error = alias_errors[0] |
- |
- self.assertEquals(errors.INVALID_USE_OF_GOOG_SCOPE, alias_error.code) |
- self.assertEquals('goog.scope', alias_error.token.string) |
- |
- def testAliasedIdentifiers(self): |
- start_token = testutil.TokenizeSourceAndRunEcmaPass(_TEST_ALIAS_SCRIPT) |
- alias_pass = aliaspass.AliasPass(set(['goog', 'myproject'])) |
- alias_pass.Process(start_token) |
- |
- alias_token = _GetTokenByLineAndString(start_token, 'Event', 4) |
- self.assertTrue(alias_token.metadata.is_alias_definition) |
- |
- my_class_token = _GetTokenByLineAndString(start_token, 'myClass', 9) |
- self.assertIsNone(my_class_token.metadata.aliased_symbol) |
- |
- component_token = _GetTokenByLineAndString(start_token, 'Component', 17) |
- self.assertEquals('goog.ui.Component', |
- component_token.metadata.aliased_symbol) |
- |
- event_token = _GetTokenByLineAndString(start_token, 'Event.Something', 17) |
- self.assertEquals('goog.events.Event.Something', |
- event_token.metadata.aliased_symbol) |
- |
- non_closurized_token = _GetTokenByLineAndString( |
- start_token, 'NonClosurizedClass', 18) |
- self.assertIsNone(non_closurized_token.metadata.aliased_symbol) |
- |
- long_start_token = _GetTokenByLineAndString(start_token, 'Event', 24) |
- self.assertEquals('goog.events.Event.MultilineIdentifier.someMethod', |
- long_start_token.metadata.aliased_symbol) |
- |
- def testAliasedDoctypes(self): |
- """Tests that aliases are correctly expanded within type annotations.""" |
- start_token = testutil.TokenizeSourceAndRunEcmaPass(_TEST_ALIAS_SCRIPT) |
- tracker = javascriptstatetracker.JavaScriptStateTracker() |
- tracker.DocFlagPass(start_token, error_handler=None) |
- |
- alias_pass = aliaspass.AliasPass(set(['goog', 'myproject'])) |
- alias_pass.Process(start_token) |
- |
- flag_token = _GetTokenByLineAndString(start_token, '@type', 22) |
- self.assertEquals( |
- 'goog.events.Event.<goog.ui.Component,Array<myproject.foo.MyClass>>', |
- repr(flag_token.attached_object.jstype)) |
- |
- def testModuleAlias(self): |
- start_token = testutil.TokenizeSourceAndRunEcmaPass(""" |
-goog.module('goog.test'); |
-var Alias = goog.require('goog.Alias'); |
-Alias.use(); |
-""") |
- alias_pass = aliaspass.AliasPass(set(['goog'])) |
- alias_pass.Process(start_token) |
- alias_token = _GetTokenByLineAndString(start_token, 'Alias', 3) |
- self.assertTrue(alias_token.metadata.is_alias_definition) |
- |
- def testMultipleGoogScopeCalls(self): |
- start_token = testutil.TokenizeSourceAndRunEcmaPass( |
- _TEST_MULTIPLE_SCOPE_SCRIPT) |
- |
- error_accumulator = erroraccumulator.ErrorAccumulator() |
- |
- alias_pass = aliaspass.AliasPass( |
- set(['goog', 'myproject']), |
- error_handler=error_accumulator) |
- alias_pass.Process(start_token) |
- |
- alias_errors = error_accumulator.GetErrors() |
- |
- self.assertEquals(3, len(alias_errors)) |
- |
- error = alias_errors[0] |
- self.assertEquals(errors.INVALID_USE_OF_GOOG_SCOPE, error.code) |
- self.assertEquals(7, error.token.line_number) |
- |
- error = alias_errors[1] |
- self.assertEquals(errors.EXTRA_GOOG_SCOPE_USAGE, error.code) |
- self.assertEquals(7, error.token.line_number) |
- |
- error = alias_errors[2] |
- self.assertEquals(errors.EXTRA_GOOG_SCOPE_USAGE, error.code) |
- self.assertEquals(11, error.token.line_number) |
- |
- |
-_TEST_ALIAS_SCRIPT = """ |
-goog.scope(function() { |
-var events = goog.events; // scope alias |
-var Event = events. |
- Event; // nested multiline scope alias |
- |
-// This should not be registered as an aliased identifier because |
-// it appears before the alias. |
-var myClass = new MyClass(); |
- |
-var Component = goog.ui.Component; // scope alias |
-var MyClass = myproject.foo.MyClass; // scope alias |
- |
-// Scope alias of non-Closurized namespace. |
-var NonClosurizedClass = aaa.bbb.NonClosurizedClass; |
- |
-var component = new Component(Event.Something); |
-var nonClosurized = NonClosurizedClass(); |
- |
-/** |
- * A created namespace with a really long identifier. |
- * @type {events.Event.<Component,Array<MyClass>} |
- */ |
-Event. |
- MultilineIdentifier. |
- someMethod = function() {}; |
-}); |
-""" |
- |
-_TEST_SCOPE_SCRIPT = """ |
-function foo () { |
- // This goog.scope call is invalid. |
- goog.scope(function() { |
- |
- }); |
-} |
-""" |
- |
-_TEST_MULTIPLE_SCOPE_SCRIPT = """ |
-goog.scope(function() { |
- // do nothing |
-}); |
- |
-function foo() { |
- var test = goog.scope; // We should not see goog.scope mentioned. |
-} |
- |
-// This goog.scope invalid. There can be only one. |
-goog.scope(function() { |
- |
-}); |
-""" |
- |
- |
-if __name__ == '__main__': |
- googletest.main() |