1616package com .google .gwt .dev ;
1717
1818import com .google .gwt .dev .jjs .JJSOptionsImpl ;
19+ import com .google .gwt .dev .jjs .JsOutputOption ;
20+ import com .google .gwt .dev .js .JsNamespaceOption ;
1921import com .google .gwt .dev .util .arg .ArgHandlerDraftCompile ;
2022import com .google .gwt .dev .util .arg .ArgHandlerOptimize ;
23+ import com .google .gwt .dev .util .arg .OptionMethodNameDisplayMode ;
24+ import com .google .gwt .dev .util .arg .SourceLevel ;
2125
2226/**
2327 * Test for {@link ArgProcessorBase}.
@@ -44,17 +48,58 @@ public ArgProcessorBaseTest() {
4448 }
4549
4650 public void testOptionOrderIsPrecedenceArgs () {
47- assertProcessSuccess (argProcessor , new String [ 0 ] );
51+ assertProcessSuccess (argProcessor );
4852 assertEquals (9 , options .getOptimizationLevel ());
4953
50- assertProcessSuccess (argProcessor , new String [] { "-optimize" , "5" } );
54+ assertProcessSuccess (argProcessor , "-optimize" , "5" );
5155 assertEquals (5 , options .getOptimizationLevel ());
5256
53- assertProcessSuccess (argProcessor , new String [] { "-optimize" , "5" , "-draftCompile" } );
57+ assertProcessSuccess (argProcessor , "-optimize" , "5" , "-draftCompile" );
5458 assertEquals (0 , options .getOptimizationLevel ());
5559
5660 assertProcessSuccess (argProcessor ,
57- new String [] { "-optimize" , "5" , "-draftCompile" , "-optimize" , "9" } );
61+ "-optimize" , "5" , "-draftCompile" , "-optimize" , "9" );
5862 assertEquals (9 , options .getOptimizationLevel ());
5963 }
64+
65+ public void testNoDraftMeansDefaults () {
66+ assertProcessSuccess (argProcessor );
67+ assertDefaults ();
68+
69+ assertProcessSuccess (argProcessor , "-nodraftCompile" );
70+ assertDefaults ();
71+ }
72+
73+ /**
74+ * For each field in JJSOptionsImpl, verify it is set to the default value.
75+ */
76+ private void assertDefaults () {
77+ assertEquals (false , options .shouldAddRuntimeChecks ());
78+ assertEquals (true , options .shouldClusterSimilarFunctions ());
79+ assertEquals (false , options .isIncrementalCompileEnabled ());
80+ assertEquals (false , options .isCompilerMetricsEnabled ());
81+ assertEquals (false , options .isClassMetadataDisabled ());
82+ assertEquals (false , options .isEnableAssertions ());
83+ assertEquals (-1 , options .getFragmentCount ());
84+ assertEquals (true , options .shouldInlineLiteralParameters ());
85+ assertEquals (false , options .isJsonSoycEnabled ());
86+ assertEquals (JsNamespaceOption .NONE , options .getNamespace ());
87+ assertEquals (9 , options .getOptimizationLevel ());
88+ assertEquals (false , options .shouldOptimizeDataflow ());
89+ assertEquals (true , options .shouldOrdinalizeEnums ());
90+ assertEquals (JsOutputOption .OBFUSCATED , options .getOutput ());
91+ assertEquals (true , options .shouldRemoveDuplicateFunctions ());
92+ assertEquals (true , options .isRunAsyncEnabled ());
93+ assertEquals (SourceLevel .DEFAULT_SOURCE_LEVEL , options .getSourceLevel ());
94+ assertEquals (false , options .isSoycEnabled ());
95+ assertEquals (false , options .isSoycExtra ());
96+ assertEquals (false , options .isSoycHtmlDisabled ());
97+ assertEquals (false , options .isStrict ());
98+ assertEquals (false , options .shouldGenerateJsInteropExports ());
99+ assertEquals (false , options .useDetailedTypeIds ());
100+ assertEquals (OptionMethodNameDisplayMode .Mode .NONE ,
101+ options .getMethodNameDisplayMode ());
102+ // deliberately skipping the jsInteropExportFilter field, empty state isn't exposed
103+ assertEquals (false , options .isClosureCompilerFormatEnabled ());
104+ }
60105}
0 commit comments