blob: f523a6697b764f7628248fe19563ac4cf7a7967e [file] [log] [blame]
#!/usr/bin/env python
#
# Copyright 2013 The Closure Library 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 test for depstree."""
__author__ = 'nnaze@google.com (Nathan Naze)'
import unittest
import jscompiler
class JsCompilerTestCase(unittest.TestCase):
"""Unit tests for jscompiler module."""
def testGetJsCompilerArgs(self):
original_check = jscompiler._JavaSupports32BitMode
jscompiler._JavaSupports32BitMode = lambda: False
args = jscompiler._GetJsCompilerArgs(
'path/to/jscompiler.jar',
(1, 7),
['path/to/src1.js', 'path/to/src2.js'],
['--test_jvm_flag'],
['--test_compiler_flag']
)
self.assertEqual(
['java', '-client', '--test_jvm_flag',
'-jar', 'path/to/jscompiler.jar',
'--js', 'path/to/src1.js',
'--js', 'path/to/src2.js', '--test_compiler_flag'],
args)
def CheckJava15RaisesError():
jscompiler._GetJsCompilerArgs(
'path/to/jscompiler.jar',
(1, 5),
['path/to/src1.js', 'path/to/src2.js'],
['--test_jvm_flag'],
['--test_compiler_flag'])
self.assertRaises(jscompiler.JsCompilerError, CheckJava15RaisesError)
jscompiler._JavaSupports32BitMode = original_check
def testGetJsCompilerArgs32BitJava(self):
original_check = jscompiler._JavaSupports32BitMode
# Should include the -d32 flag only if 32-bit Java is supported by the
# system.
jscompiler._JavaSupports32BitMode = lambda: True
args = jscompiler._GetJsCompilerArgs(
'path/to/jscompiler.jar',
(1, 7),
['path/to/src1.js', 'path/to/src2.js'],
['--test_jvm_flag'],
['--test_compiler_flag'])
self.assertEqual(
['java', '-d32', '-client', '--test_jvm_flag',
'-jar', 'path/to/jscompiler.jar',
'--js', 'path/to/src1.js',
'--js', 'path/to/src2.js',
'--test_compiler_flag'],
args)
# Should exclude the -d32 flag if 32-bit Java is not supported by the
# system.
jscompiler._JavaSupports32BitMode = lambda: False
args = jscompiler._GetJsCompilerArgs(
'path/to/jscompiler.jar',
(1, 7),
['path/to/src1.js', 'path/to/src2.js'],
['--test_jvm_flag'],
['--test_compiler_flag'])
self.assertEqual(
['java', '-client', '--test_jvm_flag',
'-jar', 'path/to/jscompiler.jar',
'--js', 'path/to/src1.js',
'--js', 'path/to/src2.js',
'--test_compiler_flag'],
args)
jscompiler._JavaSupports32BitMode = original_check
def testGetJavaVersion(self):
def assertVersion(expected, version_string):
self.assertEquals(expected, jscompiler._ParseJavaVersion(version_string))
assertVersion((1, 7), _TEST_JAVA_VERSION_STRING)
assertVersion((1, 4), 'java version "1.4.0_03-ea"')
_TEST_JAVA_VERSION_STRING = """\
openjdk version "1.7.0-google-v5"
OpenJDK Runtime Environment (build 1.7.0-google-v5-64327-39803485)
OpenJDK Server VM (build 22.0-b10, mixed mode)
"""
if __name__ == '__main__':
unittest.main()