/*
* Copyright 2015 The Closure Compiler Authors.
*
* 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.
*/
package com.google.javascript.jscomp;
import com.google.javascript.jscomp.CompilerOptions.LanguageMode;
public class WhitespaceWrapGoogModulesTest extends CompilerTestCase {
private LanguageMode languageOut;
@Override
public void setUp() {
setAcceptedLanguage(LanguageMode.ECMASCRIPT_2015);
languageOut = LanguageMode.ECMASCRIPT_2015;
disableTypeCheck();
enableCompareAsTree(false);
// otherwise "use strict" in the expected output moves,
// from where it should be (deliberately to match ClosureBundler),
// to the top of the AST and breaks the comparison.
}
@Override
protected CompilerPass getProcessor(Compiler compiler) {
return new WhitespaceWrapGoogModules(compiler);
}
@Override
protected CompilerOptions getOptions() {
CompilerOptions options = super.getOptions();
options.setLanguageOut(languageOut);
return options;
}
public void testGoogModuleRewrite() {
test(
LINE_JOINER.join("goog.module('test');", "var f = 5;", "exports = f;"),
"goog.loadModule(function(exports){"
+ "\"use strict\";"
+ "goog.module(\"test\");"
+ "var f=5;"
+ "exports=f;"
+ "return exports"
+ "})");
}
}