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

Unified Diff: third_party/closure_linter/closure_linter/requireprovidesorter_test.py

Issue 411243002: closure_linter: 2.3.4 => 2.3.14 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove checker Created 6 years, 5 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: third_party/closure_linter/closure_linter/requireprovidesorter_test.py
diff --git a/third_party/closure_linter/closure_linter/requireprovidesorter_test.py b/third_party/closure_linter/closure_linter/requireprovidesorter_test.py
index d1d61dc586957997048e59c2721803f9994c42d3..fecb6d04dad9cebf6633428b20371471eda5f06c 100644
--- a/third_party/closure_linter/closure_linter/requireprovidesorter_test.py
+++ b/third_party/closure_linter/closure_linter/requireprovidesorter_test.py
@@ -19,20 +19,58 @@
import unittest as googletest
-from closure_linter import ecmametadatapass
-from closure_linter import javascripttokenizer
from closure_linter import javascripttokens
from closure_linter import requireprovidesorter
+from closure_linter import testutil
-# pylint: disable-msg=C6409
+# pylint: disable=g-bad-name
TokenType = javascripttokens.JavaScriptTokenType
class RequireProvideSorterTest(googletest.TestCase):
"""Tests for RequireProvideSorter."""
- _tokenizer = javascripttokenizer.JavaScriptTokenizer()
- _metadata_pass = ecmametadatapass.EcmaMetaDataPass()
+ def testGetFixedProvideString(self):
+ """Tests that fixed string constains proper comments also."""
+ input_lines = [
+ 'goog.provide(\'package.xyz\');',
+ '/** @suppress {extraprovide} **/',
+ 'goog.provide(\'package.abcd\');'
+ ]
+
+ expected_lines = [
+ '/** @suppress {extraprovide} **/',
+ 'goog.provide(\'package.abcd\');',
+ 'goog.provide(\'package.xyz\');'
+ ]
+
+ token = testutil.TokenizeSourceAndRunEcmaPass(input_lines)
+
+ sorter = requireprovidesorter.RequireProvideSorter()
+ fixed_provide_string = sorter.GetFixedProvideString(token)
+
+ self.assertEquals(expected_lines, fixed_provide_string.splitlines())
+
+ def testGetFixedRequireString(self):
+ """Tests that fixed string constains proper comments also."""
+ input_lines = [
+ 'goog.require(\'package.xyz\');',
+ '/** This is needed for scope. **/',
+ 'goog.require(\'package.abcd\');'
+ ]
+
+ expected_lines = [
+ '/** This is needed for scope. **/',
+ 'goog.require(\'package.abcd\');',
+ 'goog.require(\'package.xyz\');'
+ ]
+
+ token = testutil.TokenizeSourceAndRunEcmaPass(input_lines)
+
+ sorter = requireprovidesorter.RequireProvideSorter()
+ fixed_require_string = sorter.GetFixedRequireString(token)
+
+ self.assertEquals(expected_lines, fixed_require_string.splitlines())
def testFixRequires_removeBlankLines(self):
"""Tests that blank lines are omitted in sorted goog.require statements."""
@@ -49,15 +87,58 @@ class RequireProvideSorterTest(googletest.TestCase):
'goog.require(\'package.subpackage.ClassA\');',
'goog.require(\'package.subpackage.ClassB\');'
]
- token = self._tokenizer.TokenizeFile(input_lines)
- self._metadata_pass.Reset()
- self._metadata_pass.Process(token)
+ token = testutil.TokenizeSourceAndRunEcmaPass(input_lines)
+
+ sorter = requireprovidesorter.RequireProvideSorter()
+ sorter.FixRequires(token)
+
+ self.assertEquals(expected_lines, self._GetLines(token))
+
+ def fixRequiresTest_withTestOnly(self, position):
+ """Regression-tests sorting even with a goog.setTestOnly statement.
+
+ Args:
+ position: The position in the list where to insert the goog.setTestOnly
+ statement. Will be used to test all possible combinations for
+ this test.
+ """
+ input_lines = [
+ 'goog.provide(\'package.subpackage.Whatever\');',
+ '',
+ 'goog.require(\'package.subpackage.ClassB\');',
+ 'goog.require(\'package.subpackage.ClassA\');'
+ ]
+ expected_lines = [
+ 'goog.provide(\'package.subpackage.Whatever\');',
+ '',
+ 'goog.require(\'package.subpackage.ClassA\');',
+ 'goog.require(\'package.subpackage.ClassB\');'
+ ]
+ input_lines.insert(position, 'goog.setTestOnly();')
+ expected_lines.insert(position, 'goog.setTestOnly();')
+
+ token = testutil.TokenizeSourceAndRunEcmaPass(input_lines)
sorter = requireprovidesorter.RequireProvideSorter()
sorter.FixRequires(token)
self.assertEquals(expected_lines, self._GetLines(token))
+ def testFixRequires_withTestOnly(self):
+ """Regression-tests sorting even after a goog.setTestOnly statement."""
+
+ # goog.setTestOnly at first line.
+ self.fixRequiresTest_withTestOnly(position=0)
+
+ # goog.setTestOnly after goog.provide.
+ self.fixRequiresTest_withTestOnly(position=1)
+
+ # goog.setTestOnly before goog.require.
+ self.fixRequiresTest_withTestOnly(position=2)
+
+ # goog.setTestOnly after goog.require.
+ self.fixRequiresTest_withTestOnly(position=4)
+
def _GetLines(self, token):
"""Returns an array of lines based on the specified token stream."""
lines = []
« no previous file with comments | « third_party/closure_linter/closure_linter/requireprovidesorter.py ('k') | third_party/closure_linter/closure_linter/runner.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698