summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Peterson2013-07-15 15:13:21 (EDT)
committerJason Peterson2013-07-15 15:13:21 (EDT)
commitab3c817c4a8554251336c7b7c922f68fb5bd8abb (patch)
tree543ef24160cad6e51dae399896b5ba698e754509
parentea56c339d40576d5a9f1f8a29b549c112c8d0e4e (diff)
downloadwebtools.sourceediting.tests-ab3c817c4a8554251336c7b7c922f68fb5bd8abb.zip
webtools.sourceediting.tests-ab3c817c4a8554251336c7b7c922f68fb5bd8abb.tar.gz
webtools.sourceediting.tests-ab3c817c4a8554251336c7b7c922f68fb5bd8abb.tar.bz2
[384319] CPU utilization to 100% when this is appended to new objectv201307162035
definition
-rw-r--r--tests/org.eclipse.wst.jsdt.web.core.tests/.settings/org.eclipse.jdt.core.prefs398
-rw-r--r--tests/org.eclipse.wst.jsdt.web.core.tests/.settings/org.eclipse.jdt.ui.prefs4
-rw-r--r--tests/org.eclipse.wst.jsdt.web.core.tests/META-INF/MANIFEST.MF4
-rw-r--r--tests/org.eclipse.wst.jsdt.web.core.tests/src/org/eclipse/wst/jsdt/web/core/tests/AllWebCoreTests.java15
-rw-r--r--tests/org.eclipse.wst.jsdt.web.core.tests/src/org/eclipse/wst/jsdt/web/core/tests/PathUtilsTests.java310
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/.settings/org.eclipse.jdt.core.prefs463
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/.settings/org.eclipse.jdt.ui.prefs4
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/META-INF/MANIFEST.MF1
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/OSGI-INF/l10n/bundle.properties4
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/build.properties3
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/plugin.properties1
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/plugin.xml2
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/AllWebUITests.java15
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/AllContentAssistTests.java89
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/BrowserLibraryTests.java100
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/CamelCasingTests.java125
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/CamelCasingTests_Edited.java145
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ClosureTests.java105
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ConstructorTests.java181
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ConstructorTests_Edited.java167
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ContentAssistTestUtilities.java530
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/DoublyNestedFunctionTests.java99
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/DoublyNestedFunctionTests_Edited.java103
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/DuplicatesTests.java143
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalFunctionTests.java146
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalFunctionTests_Edited.java165
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalObjectLiteralTests.java125
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalVariableTests.java112
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalVariableTests_Edited.java125
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/InnerFunctionTests.java131
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/InnerFunctionTests_Edited.java141
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/LocalVarDefinedInFunctionInObjectLiteralTests.java91
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/OtherContentAssistTests.java88
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ProposalInfoTest.java104
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ProposalInfoTest_Edited.java116
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/SingleLineSriptTagTests.java102
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/StaticTests.java121
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/StaticTests_Edited.java144
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/TemplateTests.java90
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/TypeTests.java115
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/TypeTests_Edited.java136
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/conversion/IncludePathTests.java129
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/format/FormattingTests.java24
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/format/TestJSPContentFormatter.java247
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/internal/TestProjectSetup.java355
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/style/StyleTests.java29
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/translation/RunCodeHandler.java4
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.project29
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/.jsdtscope12
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.common.component7
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.common.project.facet.core.xml8
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.jsdt.ui.superType.container1
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.jsdt.ui.superType.name1
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/BrowserLibrary.html20
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ClassTest1.js8
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ClassTest2.html16
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ClassTest3.js14
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ConstructorCamelCase.html21
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ConstructorCamelCase.js27
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Crazy.html19
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Crazy.js11
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GLobalObjectLiterals.js13
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Global.html23
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Global.js18
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalFunctions.html23
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalFunctions.js65
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalObjectLiterals.html21
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalVarsDefinedInClosure.html23
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalVarsDefinedInClosure.js19
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerFunctions.html23
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerFunctions.js24
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerOuter.html21
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerOuter.js22
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClasses.html31
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClasses.js34
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClassesII.html27
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClassesII.js38
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSObjectModel.html22
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSObjectModel.js13
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/LocalVariableDefinedInFunctionInObjectLiteral.html16
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/LocalVariableDefinedInFunctionInObjectLiteral.js8
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/NamedFunctionAssignedToVariables.html17
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/NamedFunctionAssignedToVariables.js11
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ProposalInfo.html20
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ProposalInfo.js25
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ReferenceInMemberAndStaticFunctions.html18
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ReferenceInMemberAndStaticFunctions.js12
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/SingleLineScriptTag.html14
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/StaticTests.html27
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/StaticTests.js59
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Template.html12
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Test.html17
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Test.js8
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/formatting/test20-fmt.jsp20
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/formatting/test20.jsp18
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/.project22
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/META-INF/MANIFEST.MF3
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/WEB-INF/lib/.keepme0
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/WEB-INF/web.xml12
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495-fmt.jsp37
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495.jsp29
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_1-fmt.jsp14
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_1.jsp13
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_2-fmt.jsp20
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_2.jsp16
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_3-fmt.jsp14
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_3.jsp14
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_4-fmt.jsp26
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_4.jsp23
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug358545.jsp92
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug358545b.jsp19
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/src/.keepme0
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test16-fmt.html351
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test17-fmt.html31
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test17.html31
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test18-fmt.html17
-rw-r--r--tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test18.html17
118 files changed, 6912 insertions, 699 deletions
diff --git a/tests/org.eclipse.wst.jsdt.web.core.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.wst.jsdt.web.core.tests/.settings/org.eclipse.jdt.core.prefs
index 33e4d64..53cf527 100644
--- a/tests/org.eclipse.wst.jsdt.web.core.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/org.eclipse.wst.jsdt.web.core.tests/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,394 @@
-#Mon Dec 07 03:23:26 EST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+#Tue Jul 17 18:19:32 EDT 2012
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.compiler.problem.emptyStatement=error
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=3
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=64
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=78
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.continuation_indentation=3
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.incompleteClasspath=error
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.compiler.problem.deprecation=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=48
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.compiler.problem.unusedLabel=error
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.builder.invalidClasspath=ignore
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=32
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=3
+org.eclipse.jdt.core.formatter.lineSplit=999
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=64
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
diff --git a/tests/org.eclipse.wst.jsdt.web.core.tests/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.wst.jsdt.web.core.tests/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..f342af0
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.core.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,4 @@
+#Mon Mar 05 17:40:09 EST 2012
+eclipse.preferences.version=1
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Licensed Materials - Property of IBM\r\n * \u00A9 Copyright IBM Corporation ${year}. All Rights Reserved.\r\n * U.S. Government Users Restricted Rights - Use, duplication or disclosure\r\n * restricted by GSA ADP Schedule Contract with IBM Corp. \r\n *******************************************************************************/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/tests/org.eclipse.wst.jsdt.web.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.jsdt.web.core.tests/META-INF/MANIFEST.MF
index 603b051..3cdb648 100644
--- a/tests/org.eclipse.wst.jsdt.web.core.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.wst.jsdt.web.core.tests/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: org.eclipse.wst.jsdt.web.core.tests;singleton:=true
-Bundle-Version: 1.0.201.qualifier
+Bundle-Version: 1.0.300.qualifier
Bundle-Activator: org.eclipse.wst.jsdt.web.core.tests.Activator
Require-Bundle: org.eclipse.core.runtime,
org.junit,
org.eclipse.wst.sse.core,
- org.eclipse.wst.jsdt.core,
org.eclipse.wst.jsdt.web.core,
+ org.eclipse.wst.jsdt.core,
org.eclipse.core.resources,
org.eclipse.wst.xml.core
Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.wst.jsdt.web.core.tests/src/org/eclipse/wst/jsdt/web/core/tests/AllWebCoreTests.java b/tests/org.eclipse.wst.jsdt.web.core.tests/src/org/eclipse/wst/jsdt/web/core/tests/AllWebCoreTests.java
index 39f1ba7..b223909 100644
--- a/tests/org.eclipse.wst.jsdt.web.core.tests/src/org/eclipse/wst/jsdt/web/core/tests/AllWebCoreTests.java
+++ b/tests/org.eclipse.wst.jsdt.web.core.tests/src/org/eclipse/wst/jsdt/web/core/tests/AllWebCoreTests.java
@@ -1,12 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
package org.eclipse.wst.jsdt.web.core.tests;
import junit.framework.Test;
-import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.eclipse.wst.jsdt.web.core.tests.translation.TestHtmlTranslation;
-public class AllWebCoreTests extends TestCase {
+public class AllWebCoreTests extends TestSuite {
public AllWebCoreTests() {
super("JSDT Web Core Tests");
}
@@ -17,6 +27,7 @@ public class AllWebCoreTests extends TestCase {
//$JUnit-END$
suite.addTestSuite(TestHtmlTranslation.class);
+ suite.addTestSuite(PathUtilsTests.class);
return suite;
}
diff --git a/tests/org.eclipse.wst.jsdt.web.core.tests/src/org/eclipse/wst/jsdt/web/core/tests/PathUtilsTests.java b/tests/org.eclipse.wst.jsdt.web.core.tests/src/org/eclipse/wst/jsdt/web/core/tests/PathUtilsTests.java
new file mode 100644
index 0000000..8426b42
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.core.tests/src/org/eclipse/wst/jsdt/web/core/tests/PathUtilsTests.java
@@ -0,0 +1,310 @@
+/*******************************************************************************
+ * Copyright (c) 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.core.tests;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.jsdt.web.core.internal.PathUtils;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+/**
+ * <p>Unit tests for the {@link PathUtils} class.</p>
+ *
+ */
+public class PathUtilsTests extends TestCase {
+
+ /**
+ * <p>Default constructor</p>
+ */
+ public PathUtilsTests() {
+ super("Path Utils Tests");
+ }
+
+ public void testOneSegmentParentWithOneSegmentPattern_SegmentCountTest_0() {
+ runCountPatternSegmentsThatMatchParentTest("foo", "foo", 1);
+ }
+
+ public void testOneSegmentParentWithOneSegmentPattern_SegmentCountTest_1() {
+ runCountPatternSegmentsThatMatchParentTest("/foo", "foo", 1);
+ }
+
+ public void testOneSegmentParentWithOneSegmentPattern_SegmentCountTest_2() {
+ runCountPatternSegmentsThatMatchParentTest("/foo", "foo", 1);
+ }
+
+ public void testOneSegmentParentWithOneSegmentPattern_SegmentCountTest_3() {
+ runCountPatternSegmentsThatMatchParentTest("foo", "/foo", 1);
+ }
+
+ public void testOneSegmentParentWithOneSegmentPattern_SegmentCountTest_4() {
+ runCountPatternSegmentsThatMatchParentTest("/foo", "/foo", 1);
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_SegmentCountTest_0() {
+ runCountPatternSegmentsThatMatchParentTest("foo/bar", "foo", 1);
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_SegmentCountTest_1() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/bar", "foo", 1);
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_SegmentCountTest_2() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/bar", "foo", 1);
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_SegmentCountTest_3() {
+ runCountPatternSegmentsThatMatchParentTest("foo/bar", "/foo", 1);
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_SegmentCountTest_4() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/bar", "/foo", 1);
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_SegmentCountTest_5() {
+ runCountPatternSegmentsThatMatchParentTest("foo/bar/", "foo", 1);
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_SegmentCountTest_6() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/bar/", "foo", 1);
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_SegmentCountTest_7() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/bar/", "foo", 1);
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_SegmentCountTest_8() {
+ runCountPatternSegmentsThatMatchParentTest("foo/bar/", "/foo", 1);
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_SegmentCountTest_9() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/bar/", "/foo", 1);
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_SegmentCountTest_10() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/bar/", "/boo", 0);
+ }
+
+ public void testTwoSegmentParentWithThreeSegmentPattern_SegmentCountTest_0() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/bar/blarg", "/foo/bar", 2);
+ }
+
+ public void testStar_SegmentCountTest_0() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/*/blarg", "foo/bar", 2);
+ }
+
+ public void testStar_SegmentCountTest_1() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/*", "foo", 1);
+ }
+
+ public void testStar_SegmentCountTest_2() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/*", "foo/blarg", 2);
+ }
+
+ public void testStar_SegmentCountTest_3() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/*", "foo", 1);
+ }
+
+ public void testStarStar_SegmentCountTest_0() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/**", "foo", 1);
+ }
+
+ public void testStarStar_SegmentCountTest_1() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/**", "foo/bar", 2);
+ }
+
+ public void testStarStar_SegmentCountTest_2() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/**", "foo/bar/blarg", 3);
+ }
+
+ public void testStarStar_SegmentCountTest_3() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/**/blarg", "foo/bar/blarg", 3);
+ }
+
+ public void testStarStar_SegmentCountTest_4() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/**/blarg", "foo/bar/boo/blarg", 3);
+ }
+
+ public void testStarStar_SegmentCountTest_5() {
+ runCountPatternSegmentsThatMatchParentTest("/foo/**/blarg/nerg", "foo/bar/boo/blarg", 3);
+ }
+
+ public void testQuestionMark_SegmentCountTest_0() {
+ runCountPatternSegmentsThatMatchParentTest("foo?bar", "/fooZbar", 1);
+ }
+
+ public void testQuestionMark_SegmentCountTest_1() {
+ runCountPatternSegmentsThatMatchParentTest("foo?bar", "/foobar", 0);
+ }
+
+ public void testOneSegmentParentWithOneSegmentPattern_TransformPatternTest_0() {
+ runMakePatternRelativeToParentTest("foo", "foo", null);
+ }
+
+ public void testOneSegmentParentWithOneSegmentPattern_TransformPatternTest_1() {
+ runMakePatternRelativeToParentTest("/foo", "foo", null);
+ }
+
+ public void testOneSegmentParentWithOneSegmentPattern_TransformPatternTest_2() {
+ runMakePatternRelativeToParentTest("/foo", "foo", null);
+ }
+
+ public void testOneSegmentParentWithOneSegmentPattern_TransformPatternTest_3() {
+ runMakePatternRelativeToParentTest("foo", "foo", null);
+ }
+
+ public void testOneSegmentParentWithOneSegmentPattern_TransformPatternTest_4() {
+ runMakePatternRelativeToParentTest("/foo", "foo", null);
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_TransformPatternTest_0() {
+ runMakePatternRelativeToParentTest("foo/bar", "foo", "bar/");
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_TransformPatternTest_1() {
+ runMakePatternRelativeToParentTest("/foo/bar", "foo", "bar/");
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_TransformPatternTest_2() {
+ runMakePatternRelativeToParentTest("/foo/bar", "foo", "bar/");
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_TransformPatternTest_3() {
+ runMakePatternRelativeToParentTest("foo/bar", "/foo", "bar/");
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_TransformPatternTest_4() {
+ runMakePatternRelativeToParentTest("/foo/bar", "/foo", "bar/");
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_TransformPatternTest_5() {
+ runMakePatternRelativeToParentTest("foo/bar/", "foo", "bar/");
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_TransformPatternTest_6() {
+ runMakePatternRelativeToParentTest("/foo/bar/", "foo", "bar/");
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_TransformPatternTest_7() {
+ runMakePatternRelativeToParentTest("/foo/bar/", "foo", "bar/");
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_TransformPatternTest_8() {
+ runMakePatternRelativeToParentTest("foo/bar/", "/foo", "bar/");
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_TransformPatternTest_9() {
+ runMakePatternRelativeToParentTest("/foo/bar/", "/foo", "bar/");
+ }
+
+ public void testOneSegmentParentWithTwoSegmentPattern_TransformPatternTest_10() {
+ runMakePatternRelativeToParentTest("/foo/bar/", "/boo", null);
+ }
+
+ public void testTwoSegmentParentWithThreeSegmentPattern_TransformPatternTest_0() {
+ runMakePatternRelativeToParentTest("/foo/bar/blarg", "/foo/bar", "blarg/");
+ }
+
+ public void testStar_TransformPatternTest_0() {
+ runMakePatternRelativeToParentTest("/foo/*/blarg", "foo/bar", "blarg/");
+ }
+
+ public void testStar_TransformPatternTest_1() {
+ runMakePatternRelativeToParentTest("/foo/*", "foo", "*/");
+ }
+
+ public void testStar_TransformPatternTest_2() {
+ runMakePatternRelativeToParentTest("/foo/*", "foo/blarg/", null);
+ }
+
+ public void testStar_TransformPatternTest_3() {
+ runMakePatternRelativeToParentTest("/foo/*", "foo", "*/");
+ }
+
+ public void testStarStar_TransformPatternTest_0() {
+ runMakePatternRelativeToParentTest("/foo/**", "foo", "**/");
+ }
+
+ public void testStarStar_TransformPatternTest_1() {
+ runMakePatternRelativeToParentTest("/foo/**", "foo/bar/", null);
+ }
+
+ public void testStarStar_TransformPatternTest_2() {
+ runMakePatternRelativeToParentTest("/foo/**", "foo/bar/blarg/", null);
+ }
+
+ public void testStarStar_TransformPatternTest_3() {
+ runMakePatternRelativeToParentTest("/foo/**/blarg", "foo/bar/blarg/", null);
+ }
+
+ public void testStarStar_TransformPatternTest_4() {
+ runMakePatternRelativeToParentTest("/foo/**/blarg", "foo/bar/boo/blarg/", null);
+ }
+
+ public void testStarStar_TransformPatternTest_5() {
+ runMakePatternRelativeToParentTest("/foo/**/blarg/nerg", "foo/bar/boo/blarg", "nerg/");
+ }
+
+ public void testQuestionMark_TransformPatternTest_0() {
+ runMakePatternRelativeToParentTest("foo?bar", "/fooZbar", null);
+ }
+
+ public void testQuestionMark_TransformPatternTest_1() {
+ runMakePatternRelativeToParentTest("foo?bar", "/foobar", null);
+ }
+
+ public void testQuestionMark_TransformPatternTest_2() {
+ runMakePatternRelativeToParentTest("foo?bar/awesome", "/fooZbar", "awesome/");
+ }
+
+ public void testQuestionMark_TransformPatternTest_3() {
+ runMakePatternRelativeToParentTest("foo?bar/awesome", "/foobar", null);
+ }
+
+ /**
+ * <p>Runs a test on {@link PathUtils#countPatternSegmentsThatMatchParent(IPath, IPath)}</p>
+ *
+ * @param pattern the pattern path to test
+ * @param parentPath the parent path to test
+ * @param expectedMatchedSegments the expected number of segments in the pattern that match the parent
+ */
+ private static void runCountPatternSegmentsThatMatchParentTest(String pattern, String parentPath,
+ int expectedMatchedSegments) {
+ int matchedSegments = PathUtils.countPatternSegmentsThatMatchParent(
+ new Path(pattern), new Path(parentPath));
+
+ Assert.assertEquals("Number of matched path segments does not equal expected.", //$NON-NLS-1$
+ expectedMatchedSegments, matchedSegments);
+ }
+
+ /**
+ *
+ * <p>Runs a test on {@link PathUtils#makePatternRelativeToParent(IPath, IPath)}</p>
+ *
+ * @param pattern the pattern path to test
+ * @param parent the parent path to test
+ * @param expected the expected pattern path made relative to the parent path
+ */
+ private static void runMakePatternRelativeToParentTest(String pattern, String parent, String expected) {
+ IPath transformedPattern = PathUtils.makePatternRelativeToParent(
+ new Path(pattern), new Path(parent));
+
+ IPath expectedPath = null;
+ if(expected != null) {
+ expectedPath = new Path(expected);
+ }
+
+ Assert.assertEquals("Transformed pattern does not match expected.",
+ expectedPath, transformedPattern);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.wst.jsdt.web.ui.tests/.settings/org.eclipse.jdt.core.prefs
index 5dcf314..53cf527 100644
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/.settings/org.eclipse.jdt.core.prefs
@@ -1,93 +1,394 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+#Tue Jul 17 18:19:32 EDT 2012
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.compiler.problem.emptyStatement=error
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=3
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=64
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=78
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.continuation_indentation=3
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.incompleteClasspath=error
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.compiler.problem.deprecation=ignore
org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=48
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.compiler.problem.unusedLabel=error
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.builder.invalidClasspath=ignore
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=32
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=3
+org.eclipse.jdt.core.formatter.lineSplit=999
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=64
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.wst.jsdt.web.ui.tests/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..cf98329
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,4 @@
+#Mon Mar 05 17:40:24 EST 2012
+eclipse.preferences.version=1
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Licensed Materials - Property of IBM\r\n * \u00A9 Copyright IBM Corporation ${year}. All Rights Reserved.\r\n * U.S. Government Users Restricted Rights - Use, duplication or disclosure\r\n * restricted by GSA ADP Schedule Contract with IBM Corp. \r\n *******************************************************************************/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.jsdt.web.ui.tests/META-INF/MANIFEST.MF
index 6d5e593..bd00d3b 100644
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/META-INF/MANIFEST.MF
@@ -19,6 +19,7 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.wst.xml.core,
org.eclipse.wst.xml.ui,
org.eclipse.wst.jsdt.web.ui,
+ org.eclipse.wst.html.core,
org.eclipse.jface.text,
org.eclipse.wst.html.ui
Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/OSGI-INF/l10n/bundle.properties b/tests/org.eclipse.wst.jsdt.web.ui.tests/OSGI-INF/l10n/bundle.properties
index f62e94b..1e0fd8d 100644
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/OSGI-INF/l10n/bundle.properties
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/OSGI-INF/l10n/bundle.properties
@@ -1,3 +1,5 @@
#Properties file for org.eclipse.wst.jsdt.web.ui.tests
Bundle-Name = JSDT Web UI Tests
-providerName=Eclipse Web Tools Platform \ No newline at end of file
+providerName=Eclipse Web Tools Platform
+_UI_SHOW_TRANSLATION=Show JavaScript Translation
+_UI_RUN=Run Snippet
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/build.properties b/tests/org.eclipse.wst.jsdt.web.ui.tests/build.properties
index 43f47a9..30d5673 100644
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/build.properties
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/build.properties
@@ -3,8 +3,7 @@ output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.xml,\
- plugin.properties,\
test.xml,\
- OSGI-INF/,\
+ OSGI-INF/l10n/,\
about.html,\
testFiles/
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/plugin.properties b/tests/org.eclipse.wst.jsdt.web.ui.tests/plugin.properties
deleted file mode 100644
index 73f8bb2..0000000
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/plugin.properties
+++ /dev/null
@@ -1 +0,0 @@
-_UI_SHOW_TRANSLATION=Show Translation
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/plugin.xml b/tests/org.eclipse.wst.jsdt.web.ui.tests/plugin.xml
index 6e359b5..106ab9b 100644
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/plugin.xml
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/plugin.xml
@@ -5,7 +5,7 @@
point="org.eclipse.ui.commands">
<command
id="org.eclipse.wst.jsdt.web.showTranslation"
- name="Show JavaScript Translation">
+ name="%_UI_SHOW_TRANSLATION">
</command>
<command
id="org.eclipse.wst.jsdt.web.runCode"
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/AllWebUITests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/AllWebUITests.java
index 7a128a0..8c32a4f 100644
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/AllWebUITests.java
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/AllWebUITests.java
@@ -13,14 +13,15 @@ package org.eclipse.wst.jsdt.web.ui.tests;
import junit.framework.Test;
-import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.eclipse.wst.jsdt.web.ui.tests.conversion.IncludePathTests;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.wst.jsdt.web.ui.tests.contentassist.AllContentAssistTests;
import org.eclipse.wst.jsdt.web.ui.tests.format.FormattingTests;
+import org.eclipse.wst.jsdt.web.ui.tests.format.TestJSPContentFormatter;
import org.eclipse.wst.jsdt.web.ui.tests.style.StyleTests;
-public class AllWebUITests extends TestCase {
+public class AllWebUITests extends TestSuite {
public AllWebUITests() {
super("JSDT Web UI Tests");
}
@@ -28,9 +29,13 @@ public class AllWebUITests extends TestCase {
public static Test suite() {
TestSuite suite = new TestSuite("JSDT Web UI Tests");
// $JUnit-BEGIN$
- suite.addTestSuite(IncludePathTests.class);
- suite.addTest(FormattingTests.suite());
suite.addTestSuite(StyleTests.class);
+ suite.addTest(AllContentAssistTests.suite());
+ suite.addTest(FormattingTests.suite());
+
+ if (Platform.getBundle("org.eclipse.jst.jsp.ui") != null) {
+ suite.addTest(TestJSPContentFormatter.suite());
+ }
// $JUnit-END$
return suite;
}
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/AllContentAssistTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/AllContentAssistTests.java
new file mode 100644
index 0000000..c141e16
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/AllContentAssistTests.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+/**
+ * <p>
+ * Test suite containing all JSDT web content assist tests.
+ * </p>
+ */
+public class AllContentAssistTests extends TestSuite {
+ private static final String TEST_NAME = "All JSDT Web Content Assist Tests";
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public AllContentAssistTests() {
+ this(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public AllContentAssistTests(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ TestSuite all = new TestSuite(TEST_NAME);
+ all.addTest(BrowserLibraryTests.suite());
+ all.addTest(CamelCasingTests.suite());
+ all.addTest(CamelCasingTests_Edited.suite());
+ all.addTest(ClosureTests.suite());
+ all.addTest(ConstructorTests.suite());
+ all.addTest(ConstructorTests_Edited.suite());
+ all.addTest(DoublyNestedFunctionTests.suite());
+ all.addTest(DoublyNestedFunctionTests_Edited.suite());
+ all.addTest(DuplicatesTests.suite());
+ all.addTest(GlobalFunctionTests.suite());
+ all.addTest(GlobalFunctionTests_Edited.suite());
+ all.addTest(GlobalObjectLiteralTests.suite());
+ all.addTest(GlobalVariableTests.suite());
+ all.addTest(GlobalVariableTests_Edited.suite());
+ all.addTest(InnerFunctionTests.suite());
+ all.addTest(InnerFunctionTests_Edited.suite());
+ all.addTest(LocalVarDefinedInFunctionInObjectLiteralTests.suite());
+ all.addTest(OtherContentAssistTests.suite());
+ all.addTest(ProposalInfoTest.suite());
+ all.addTest(ProposalInfoTest_Edited.suite());
+ all.addTest(StaticTests.suite());
+ all.addTest(StaticTests_Edited.suite());
+ all.addTest(TemplateTests.suite());
+ all.addTest(SingleLineSriptTagTests.suite());
+ all.addTest(TypeTests.suite());
+ all.addTest(TypeTests_Edited.suite());
+
+ //delete the project after running all JSDT content assist tests
+ return new TestProjectSetup(all, "JSDTWebContentAssist", "WebContent", true);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/BrowserLibraryTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/BrowserLibraryTests.java
new file mode 100644
index 0000000..3aa9060
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/BrowserLibraryTests.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2013 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class BrowserLibraryTests extends TestCase {
+
+ private static final String TEST_NAME = "Test Elements defined by Browser Library";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public BrowserLibraryTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ * d
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public BrowserLibraryTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts = new TestSuite(BrowserLibraryTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testDocumentDotG() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "getElementById(String elementId) : Element - Document",
+ "getElementsByName(String elementName) : NodeList - HTMLDocument",
+ "getElementsByTagName(String tagname) : NodeList - Document",
+ "getElementsByTagNameNS(String namespaceURI, String localName) : NodeList - Document" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "BrowserLibrary.html", 7, 10, expectedProposals);
+ }
+
+ public void testAlert() throws Exception {
+ String[][] expectedProposals = new String[][] { { "alert(String message) - Window" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "BrowserLibrary.html", 9, 2, expectedProposals);
+ }
+
+ public void testDocument() throws Exception {
+ String[][] expectedProposals = new String[][] { { "document : HTMLDocument - Window" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "BrowserLibrary.html", 11, 3, expectedProposals);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/CamelCasingTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/CamelCasingTests.java
new file mode 100644
index 0000000..361a73f
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/CamelCasingTests.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class CamelCasingTests extends TestCase {
+
+ private static final String TEST_NAME = "Test Camel Casing JavaScript Content Assist.";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public CamelCasingTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public CamelCasingTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts = new TestSuite(CamelCasingTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+
+ public void testCamelCasing_Expression1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "mail.inbox.iGotStarredFun(param1) - mail.inbox.iGotStarredFun",
+ "mail.iGotSpam(a, b) - mail.iGotSpam", "iGotMessage(param1) - iGotMessage" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "ConstructorCamelCase.html", 8, 6, expectedProposals);
+ }
+
+ public void testCamelCasing_Expression2() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "mail.inbox.iGotStarredFun(param1) - mail.inbox.iGotStarredFun",
+ "mail.iGotSpam(a, b) - mail.iGotSpam" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "ConstructorCamelCase.html", 10, 7, expectedProposals);
+ }
+
+ public void testCamelCasing_Expression2_NegativeTest() throws Exception {
+ String[][] expectedProposals = new String[][] { { "iGotMessage(param1)" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "ConstructorCamelCase.html", 2, 7, expectedProposals, true,
+ false);
+ }
+
+ public void testCamelCasing_Expression3() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "mail.inbox.iGotStarredFun(param1) - mail.inbox.iGotStarredFun" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "ConstructorCamelCase.html", 12, 8, expectedProposals);
+ }
+
+ public void testGlobalVar_Expresssion1() throws Exception {
+ String[][] expectedProposals = new String[][] { { "globalVarNum : Number - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Global.html", 12, 3, expectedProposals);
+ }
+
+ public void testGlobalVar_Expresssion2() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "globalVarNum : Number - Global", "globalVar - Global",
+ "globalVarObject : {} - Global", "globalVarString : String - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Global.html", 14, 2, expectedProposals);
+ }
+
+ public void testDoublyNestedFunc_CamelCasing_Expression2() throws Exception {
+ String[][] expectedProposals = new String[][] { { "outerFunc() - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerOuter.html", 8, 2, expectedProposals);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/CamelCasingTests_Edited.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/CamelCasingTests_Edited.java
new file mode 100644
index 0000000..c61d33e
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/CamelCasingTests_Edited.java
@@ -0,0 +1,145 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class CamelCasingTests_Edited extends TestCase {
+
+ private static final String TEST_NAME = "Test Camel Casing JavaScript Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public CamelCasingTests_Edited() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public CamelCasingTests_Edited(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts = new TestSuite(CamelCasingTests_Edited.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false) {
+ /**
+ * @see org.eclipse.wst.jsdt.web.ui.tests.contentassist.ContentAssistTestUtilities.ContentAssistTestsSetup#additionalSetUp()
+ */
+ public void additionalSetUp() throws Exception {
+ /* file -> ConstructorCamelCase.js
+ * iGotMessage -> iSentMessage */
+ this.editFile("ConstructorCamelCase.js", 0, 4, 11, "iGotSentMessage");
+ this.editFile("ConstructorCamelCase.js", 0, 31, 11, "iGotSentMessage");
+
+ this.editFile("Global.js", 1, 4, 12, "globalEditedNumber");
+ this.editFile("Global.js", 7, 0, 12, "globalEditedString");
+ this.editFile("Global.js", 11, 6, 1, "E");
+ this.editFile("Global.js", 15, 1, 1, "E");
+ this.editFile("Global.js", 17, 1, 1, "E");
+
+ this.editFile("Global.html", 10, 6, 1, "E");
+ this.editFile("Global.html", 12, 1, 1, "E");
+ this.editFile("Global.html", 14, 1, 1, "E");
+
+ this.editFile("InnerOuter.js", 7, 11, 6, "edited");
+ this.editFile("InnerOuter.js", 0, 9, 9, "editedFunc");
+ }
+ };
+
+ return fTestProjectSetup;
+ }
+
+ public void testCamelCasing_AfterEdit_Expression1_NegativeTest() throws Exception {
+ String[][] expectedProposals = new String[][] { { "iGotMessage(param1)[]" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "ConstructorCamelCase.html", 8, 6, expectedProposals, true,
+ false);
+ }
+
+ public void testCamelCasing_AterEdit_Expression2_NegativeTest() throws Exception {
+ String[][] expectedProposals = new String[][] { { "iGotMessage(param1)" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "ConstructorCamelCase.html", 10, 7, expectedProposals, true,
+ false);
+ }
+
+ public void testCamelCasing_AfterEdit_Expression3_NegativeTest() throws Exception {
+ String[][] expectedProposals = new String[][] { { "iGotMessage(param1)" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "ConstructorCamelCase.html", 12, 8, expectedProposals, true,
+ false);
+ }
+
+ public void testCamelCasing_AfterEdit_Expression1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "mail.inbox.iGotStarredFun(param1) - mail.inbox.iGotStarredFun",
+ "mail.iGotSpam(a, b) - mail.iGotSpam", "iGotSentMessage(param1) - iGotSentMessage" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "ConstructorCamelCase.html", 8, 6, expectedProposals);
+ }
+
+ public void testCamelCasing_AfterEdit_Expresssion1() throws Exception {
+ String[][] expectedProposals = new String[][] { { "globalEditedNumber : Number - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Global.html", 12, 3, expectedProposals);
+ }
+
+ public void testCamelCasing_AfterEdit_Expresssion2() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "globalEditedString : String - Global", "globalEditedNumber : Number - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Global.html", 14, 2, expectedProposals);
+ }
+
+ public void testCamelCasing_AfterEdit_Expression3() throws Exception {
+ String[][] expectedProposals = new String[][] { { "editedFunc() - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerOuter.html", 12, 2, expectedProposals);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ClosureTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ClosureTests.java
new file mode 100644
index 0000000..f4fe9bd
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ClosureTests.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class ClosureTests extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Elements Defined in Closures JavaScript Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public ClosureTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ * d
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public ClosureTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts = new TestSuite(ClosureTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testClosures_EmptyLine() throws Exception {
+ String[][] expectedProposals = new String[][] { { "closure : {} - Global", "closure2 : {} - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalVarsDefinedInClosure.html", 7, 0, expectedProposals);
+ }
+
+ public void testClosures_ExpressionStarted_0() throws Exception {
+ String[][] expectedProposals = new String[][] { { "closure : {} - Global", "closure2 : {} - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalVarsDefinedInClosure.html", 9, 3, expectedProposals);
+ }
+
+ public void _testClosures_ExpressionStarted_1() throws Exception {
+ String[][] expectedProposals = new String[][] { { "nifty : Number - {}" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalVarsDefinedInClosure.html", 11, 9, expectedProposals);
+ }
+
+ public void _testClosures_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals = new String[][] { { "burg : String - {}" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalVarsDefinedInClosure.html", 13, 10, expectedProposals);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ConstructorTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ConstructorTests.java
new file mode 100644
index 0000000..fd2af8d
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ConstructorTests.java
@@ -0,0 +1,181 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class ConstructorTests extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Constructor JavaScript Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public ConstructorTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public ConstructorTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(ConstructorTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false) {
+ /**
+ * @see org.eclipse.wst.jsdt.ui.tests.contentassist.ContentAssistTestUtilities.ContentAssistTestsSetup#additionalSetUp()
+ */
+ public void additionalSetUp() throws Exception {
+ // for some reason this test suite wants an extra second before running otherwise
+ // the first test fails...
+ Thread.sleep(1000);
+ }
+ };
+
+ return fTestProjectSetup;
+ }
+
+ public void testFindConstructors_ExpressionStarted_0() throws Exception {
+ String[][] expectedProposals = new String[][] { { "Awesome(param1, param2) - Awesome" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 8, 5, expectedProposals);
+ }
+
+ public void testFindConstructors_ExpressionStarted_1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "bar.Class1(a, b) - bar.Class1", "bar.Class2(c, d, e) - bar.Class2",
+ "bar.foo.Class3(param1, param2, param3, param4) - bar.foo.Class3" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 10, 6, expectedProposals);
+ }
+
+ public void testFindConstructors_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "bar.Class1(a, b) - bar.Class1", "bar.Class2(c, d, e) - bar.Class2" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 12, 9, expectedProposals);
+ }
+
+ public void testFindConstructors_Expression_2_NegativeTest() throws Exception {
+ String[][] expectedProposals = new String[][] { { "bar : {}" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 12, 9, expectedProposals, true, false);
+ }
+
+ public void testFindConstructors_ExpressionStarted_3() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "bar.foo.Class3(param1, param2, param3, param4) - bar.foo.Class3" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 14, 10, expectedProposals);
+ }
+
+ public void testFindConstructors_ExpressionStarted_4() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "bar.foo.Class3(param1, param2, param3, param4) - bar.foo.Class3" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 16, 13, expectedProposals);
+ }
+
+ public void testFindConstructors_ExpressionStarted_5() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "bar.Class1(a, b) - bar.Class1", "bar.Class2(c, d, e) - bar.Class2",
+ "bar.foo.Class3(param1, param2, param3, param4) - bar.foo.Class3" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 18, 5, expectedProposals);
+ }
+
+ public void testFindConstructors_ExpressionStarted_6() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "bar.Class1(a, b) - bar.Class1", "bar.Class2(c, d, e) - bar.Class2",
+ "bar.foo.Class3(param1, param2, param3, param4) - bar.foo.Class3" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 20, 8, expectedProposals);
+ }
+
+ public void testFindConstructors_ExpressionStarted_7_NegativeTest() throws Exception {
+ String[][] proposals = new String[][] { { "bar.foo.Class3(param1, param2, param3, param4) - bar.foo.Class3" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 12, 9, proposals, true, false);
+ }
+
+ public void testDuplicateFindConstructors_ExpressionStarted_6() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "JSClasses.html", 20, 8);
+ }
+
+ public void testFindConstructors_VarDeclaration_ExpressionStarted_0() throws Exception {
+ String[][] expectedProposals = new String[][] { { "MyClass1(a) - MyClass1", "MyClass2() - MyClass2" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "ClassTest2.html", 7, 8, expectedProposals);
+ }
+
+ public void testFindConstructors_ArrayReferenceDeclaration_ExpressionStarted_0()
+ throws Exception {
+ String[][] expectedProposals = new String[][] { { "test.Foo(x, y, z) - test.Foo" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Test.html", 8, 7, expectedProposals);
+ }
+
+ public void testFindConstructors_ThisReferenceInStaticFunction() throws Exception {
+ String[][] expectedProposals = new String[][] { { "ParentType0.func2(b) - ParentType0.func2" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "ReferenceInMemberAndStaticFunctions.html", 7, 6,
+ expectedProposals);
+ }
+
+ public void testFindConstructors_ThisReferenceInMemberFunction_NegativeTest() throws Exception {
+ String[][] expectedProposals = new String[][] { { "ParentType0.func1(a)" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "ReferenceInMemberAndStaticFunctions.html", 7, 6,
+ expectedProposals, true, false);
+ }
+
+ public void testFindDuplicateConstructors_AnonymousConstructorFunctionAssignedToSingleNameReference()
+ throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "ReferenceInMemberAndStaticFunctions.html", 9, 7);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ConstructorTests_Edited.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ConstructorTests_Edited.java
new file mode 100644
index 0000000..23fda93
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ConstructorTests_Edited.java
@@ -0,0 +1,167 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class ConstructorTests_Edited extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Constructor JavaScript Content Assist after Edit";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public ConstructorTests_Edited() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public ConstructorTests_Edited(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts =
+ new TestSuite(ConstructorTests_Edited.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false) {
+ public void additionalSetUp() throws Exception {
+ /* file -> JSClasses.js
+ * Awesome -> Awesomeness
+ * Class1 -> ClassOne
+ * Class2 -> ClassTwo
+ * Class3 -> ClassThree */
+ this.editFile("JSClasses.js", 0, 9, 7, "Awesomeness");
+ this.editFile("JSClasses.js", 10, 4, 6, "ClassOne");
+ this.editFile("JSClasses.js", 11, 4, 6, "ClassOne");
+ this.editFile("JSClasses.js", 12, 4, 6, "ClassTwo");
+ this.editFile("JSClasses.js", 13, 4, 6, "ClassTwo");
+ this.editFile("JSClasses.js", 14, 8, 6, "ClassThree");
+ this.editFile("JSClasses.js", 15, 8, 6, "ClassThree");
+
+ /* file -> ClassTest2.js
+ * MyClass1 -> MyClassEdit1
+ * MyClass2 -> MyClassEdit2 */
+ this.editFile("ClassTest1.js", 0, 9, 8, "MyClassEdit1");
+ this.editFile("ClassTest1.js", 4, 4, 8, "MyClassEdit2");
+ this.editFile("ClassTest1.js", 5, 0, 8, "MyClassEdit2");
+
+ /* file -> Test.js
+ * test -> testEdit */
+ this.editFile("Test.js", 0, 4, 4, "testEdit");
+ this.editFile("Test.js", 1, 0, 4, "testEdit");
+ }
+ };
+
+ return fTestProjectSetup;
+ }
+
+ public void testFindConstructors_AfterEdit_ExpressionStarted_0() throws Exception {
+ String[][] expectedProposals = new String[][] { { "Awesomeness(param1, param2) - Awesomeness" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 8, 6, expectedProposals);
+ }
+
+ public void testFindConstructors_AfterEdit_ExpressionStarted_1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "bar.ClassOne(a, b) - bar.ClassOne", "bar.ClassTwo(c, d, e) - bar.ClassTwo",
+ "bar.foo.ClassThree(param1, param2, param3, param4) - bar.foo.ClassThree" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 10, 6, expectedProposals);
+ }
+
+ public void testFindConstructors_AfterEdit_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "bar.ClassOne(a, b) - bar.ClassOne", "bar.ClassTwo(c, d, e) - bar.ClassTwo" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 12, 9, expectedProposals);
+ }
+
+ public void testFindConstructors_AfterEdit_ExpressionStarted_3() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "bar.foo.ClassThree(param1, param2, param3, param4) - bar.foo.ClassThree" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 14, 10, expectedProposals);
+ }
+
+ public void testFindConstructors_AfterEdit_ExpressionStarted_4() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "bar.foo.ClassThree(param1, param2, param3, param4) - bar.foo.ClassThree" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 16, 13, expectedProposals);
+ }
+
+ public void testFindConstructors_AfterEdit_ExpressionStarted_5() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "bar.ClassOne(a, b) - bar.ClassOne", "bar.ClassTwo(c, d, e) - bar.ClassTwo",
+ "bar.foo.ClassThree(param1, param2, param3, param4) - bar.foo.ClassThree" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 18, 5, expectedProposals);
+ }
+
+ public void testFindConstructors_AfterEdit_ExpressionStarted_6() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "bar.ClassOne(a, b) - bar.ClassOne", "bar.ClassTwo(c, d, e) - bar.ClassTwo",
+ "bar.foo.ClassThree(param1, param2, param3, param4) - bar.foo.ClassThree" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClasses.html", 20, 9, expectedProposals);
+ }
+
+ public void testFindConstructors_AfterEdit_VarDeclaration_ExpressionStarted_0() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "MyClassEdit1(a) - MyClassEdit1", "MyClassEdit2() - MyClassEdit2" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "ClassTest2.html", 7, 8, expectedProposals);
+ }
+
+ public void testFindConstructors_AfterEdit_ArrayReferenceDeclaration_ExpressionStarted_0()
+ throws Exception {
+ String[][] expectedProposals = new String[][] { { "testEdit.Foo(x, y, z) - testEdit.Foo" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Test.html", 8, 7, expectedProposals);
+ }
+}
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ContentAssistTestUtilities.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ContentAssistTestUtilities.java
new file mode 100644
index 0000000..fd3f123
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ContentAssistTestUtilities.java
@@ -0,0 +1,530 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.lang.reflect.Method;
+import java.util.HashSet;
+import java.util.Set;
+
+import junit.framework.Assert;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.contentassist.ContentAssistant;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.text.contentassist.IContentAssistant;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.texteditor.AbstractTextEditor;
+import org.eclipse.ui.texteditor.ITextEditor;
+import org.eclipse.wst.html.ui.StructuredTextViewerConfigurationHTML;
+import org.eclipse.wst.jsdt.internal.ui.JavaScriptPlugin;
+import org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor;
+import org.eclipse.wst.jsdt.internal.ui.text.html.HTML2TextReader;
+import org.eclipse.wst.jsdt.ui.text.IJavaScriptPartitions;
+import org.eclipse.wst.jsdt.ui.text.JavaScriptSourceViewerConfiguration;
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+
+/**
+ * <p>
+ * Helpful utilities for running content assist tests.
+ * </p>
+ *
+ * @see org.ecliplse.wst.jsdt.ui.tests.contentassist.ContentAssistUtilities
+ * @see org.eclipse.wst.jsdt.web.ui.tests.contentassist.ContentAssistUtilities
+ */
+public class ContentAssistTestUtilities {
+ /**
+ * <p>
+ * Run a proposal test by opening the given file and invoking content assist for each expected
+ * proposal count at the given line number and line character offset and then compare the number
+ * of proposals for each invocation (pages) to the expected number of proposals.
+ * </p>
+ *
+ * @param testProject
+ * @param filePath
+ * @param lineNum
+ * @param lineRelativeCharOffset
+ * @param expectedProposalCounts
+ * @throws Exception
+ */
+ public static void runProposalTest(TestProjectSetup testProject, String filePath, int lineNum, int lineRelativeCharOffset,
+ String[][] expectedProposals) throws Exception {
+
+ runProposalTest(testProject, filePath, lineNum, lineRelativeCharOffset, expectedProposals, false, true);
+ }
+
+ /**
+ * <p>
+ * Run a proposal test by opening the given file and invoking content assist for each expected
+ * proposal count at the given line number and line character offset and then compare the number
+ * of proposals for each invocation (pages) to the expected number of proposals.
+ * </p>
+ *
+ * @param testProject
+ * @param filePath
+ * @param lineNum
+ * @param lineRelativeCharOffset
+ * @param expectedProposalCounts
+ * @param negativeTest
+ * <code>true</code> if expectedProposals should not be found, <code>false</code> if
+ * they should be found
+ * @param exactMatch
+ * <code>true</code> if expectedProposals should be compared to actual proposals with
+ * {@link String#equals(Object)}, <code>false</code> if {@link String#indexOf(int)}
+ * should be used
+ * @throws Exception
+ */
+ public static void runProposalTest(TestProjectSetup testProject, String filePath, int lineNum, int lineRelativeCharOffset,
+ String[][] expectedProposals, boolean negativeTest, boolean exactMatch) throws Exception {
+
+ ICompletionProposal[][] pages = getProposals(testProject, filePath, lineNum, lineRelativeCharOffset,
+ expectedProposals.length);
+ verifyExpectedProposal(pages, expectedProposals, negativeTest, exactMatch, false);
+ }
+
+ /**
+ * <p>
+ * Run a proposal test by opening the given file and invoking content assist for each expected
+ * proposal count at the given line number and line character offset and then compare the number
+ * of proposals for each invocation (pages) to the expected number of proposals.
+ * </p>
+ *
+ * @param testProject
+ * @param filePath
+ * @param lineNum
+ * @param lineRelativeCharOffset
+ * @param expectedProposalCounts
+ * @param negativeTest
+ * <code>true</code> if expectedProposals should not be found, <code>false</code> if
+ * they should be found
+ * @param exactMatch
+ * <code>true</code> if expectedProposals should be compared to actual proposals with
+ * {@link String#equals(Object)}, <code>false</code> if {@link String#indexOf(int)}
+ * should be used
+ * @param inOrder
+ * <code>true</code> if <code>expectedProposals</code> should be found in the order
+ * they are given, <code>false</code> if order does not matter
+ *
+ * @throws Exception
+ */
+ public static void runProposalTest(TestProjectSetup testProject, String filePath, int lineNum, int lineRelativeCharOffset,
+ String[][] expectedProposals, boolean negativeTest, boolean exactMatch, boolean inOrder) throws Exception {
+
+ ICompletionProposal[][] pages = getProposals(testProject, filePath, lineNum, lineRelativeCharOffset,
+ expectedProposals.length);
+ verifyExpectedProposal(pages, expectedProposals, negativeTest, exactMatch, inOrder);
+ }
+
+ /**
+ * <p>
+ * Run a proposal info test by opening the given file and invoking content assist for each
+ * expected proposal count at the given line number and line character offset and then compare
+ * the proposal Info for each invocation (pages) with its expected Proposal Info .
+ * </p>
+ *
+ * @param testProject
+ * @param filePath
+ * @param lineNum
+ * @param lineRelativeCharOffset
+ * @param expectedProposalInfo
+ * @throws Exception
+ */
+ public static void runProposalInfoTest(TestProjectSetup testProject, String filePath, int lineNum, int lineRelativeCharOffset,
+ String[][] expectedProposals, String[][] expectedProposalInfo) throws Exception {
+
+ ICompletionProposal[][] pages = getProposals(testProject, filePath, lineNum, lineRelativeCharOffset,
+ expectedProposals.length);
+ verifyExpectedProposalInfo(pages, expectedProposals, expectedProposalInfo);
+ }
+
+ /**
+ * <p>
+ * Runs a test for finding whether duplicate proposals are generated when content assist is
+ * invoked.
+ * </p>
+ *
+ * @param testProject
+ * @param filePath
+ * @param lineNum
+ * @param lineRelativeOffset
+ */
+ public static void verifyNoDuplicates(TestProjectSetup testProject, String filePath, int lineNum, int lineRelativeCharOffset) throws Exception {
+
+ int numOfPages = 1;
+ ICompletionProposal[][] pages = getProposals(testProject, filePath, lineNum, lineRelativeCharOffset, numOfPages);
+ checkForDuplicates(pages, numOfPages);
+ }
+
+ /**
+ * <p>
+ * Run a proposal test by opening the given file and invoking content assist for each expected
+ * proposal count at the given line number and line character offset and then compare the number
+ * of proposals for each invocation (pages) to the expected number of proposals.
+ * </p>
+ *
+ * @param testProject
+ * @param filePath
+ * @param lineNum
+ * @param lineRelativeCharOffset
+ * @param expectedProposalCounts
+ * @param negativeTest
+ * <code>true</code> if expectedProposals should not be found, <code>false</code> if
+ * they should be found
+ * @param exactMatch
+ * <code>true</code> if expectedProposals should be compared to actual proposals with
+ * {@link String#equals(Object)}, <code>false</code> if {@link String#indexOf(int)}
+ * should be used
+ * @throws Exception
+ */
+ public static void runHTMLProposalTest(TestProjectSetup testProject, String filePath, int lineNum, int lineRelativeCharOffset,
+ String[][] expectedProposals, boolean negativeTest, boolean exactMatch) throws Exception {
+
+ ICompletionProposal[][] pages = getHTMLProposals(testProject, filePath, lineNum, lineRelativeCharOffset,
+ expectedProposals.length);
+ verifyExpectedProposal(pages, expectedProposals, negativeTest, exactMatch, false);
+ }
+
+ /**
+ * <p>
+ * Returns the content assist proposals when invoked at the offset provided.
+ * </p>
+ *
+ * @param fileNum
+ * @param lineNum
+ * @param lineRelativeCharOffset
+ * @param numOfPages
+ */
+ private static ICompletionProposal[][] getProposals(TestProjectSetup testProject, String filePath, int lineNum, int lineRelativeCharOffset,
+ int numOfPages) throws Exception {
+
+ IFile file = testProject.getFile(filePath);
+ AbstractTextEditor editor = testProject.getEditor(file);
+ IDocument doc = editor.getDocumentProvider().getDocument(editor.getEditorInput());
+ int offset = doc.getLineOffset(lineNum) + lineRelativeCharOffset;
+
+ ICompletionProposal[][] pages = getProposals(editor, offset, numOfPages);
+ return pages;
+ }
+
+ /**
+ * <p>
+ * Invoke content assist on the given editor at the given offset, for the given number of pages
+ * and return the results of each page
+ * </p>
+ */
+ private static ICompletionProposal[][] getProposals(AbstractTextEditor editor, int offset, int pageCount)
+ throws Exception {
+
+ ICompletionProposal[][] pages = null;
+
+ /* if JS editor
+ * else if HTML editor */
+ if(editor instanceof JavaEditor) {
+ // setup the viewer
+ ISourceViewer viewer = ((JavaEditor) editor).getViewer();
+ JavaScriptSourceViewerConfiguration configuration = new JavaScriptSourceViewerConfiguration(
+ JavaScriptPlugin.getDefault().getJavaTextTools().getColorManager(),
+ JavaScriptPlugin.getDefault().getCombinedPreferenceStore(), editor,
+ IJavaScriptPartitions.JAVA_PARTITIONING);
+
+ ContentAssistant contentAssistant = (ContentAssistant) configuration.getContentAssistant(viewer);
+
+ // get the processor
+ String partitionTypeID = viewer.getDocument().getPartition(offset).getType();
+ IContentAssistProcessor processor = contentAssistant.getContentAssistProcessor(partitionTypeID);
+
+ // fire content assist session about to start
+ Method privateFireSessionBeginEventMethod = ContentAssistant.class.getDeclaredMethod(
+ "fireSessionBeginEvent", new Class[] { boolean.class });
+ privateFireSessionBeginEventMethod.setAccessible(true);
+ privateFireSessionBeginEventMethod.invoke(contentAssistant, new Object[] { Boolean.TRUE });
+
+ // get content assist suggestions
+ pages = new ICompletionProposal[pageCount][];
+ for(int p = 0; p < pageCount; ++p) {
+ pages[p] = processor.computeCompletionProposals(viewer, offset);
+ }
+
+ // fire content assist session ending
+ Method privateFireSessionEndEventMethod = ContentAssistant.class.getDeclaredMethod("fireSessionEndEvent",
+ null);
+ privateFireSessionEndEventMethod.setAccessible(true);
+ privateFireSessionEndEventMethod.invoke(contentAssistant, null);
+
+ } else if(editor instanceof StructuredTextEditor) {
+ //setup the viewer
+ StructuredTextViewer viewer = ((StructuredTextEditor) editor).getTextViewer();
+ StructuredTextViewerConfigurationHTML configuration = new StructuredTextViewerConfigurationHTML();
+ ContentAssistant contentAssistant = (ContentAssistant) configuration.getContentAssistant(viewer);
+ viewer.configure(configuration);
+ viewer.setSelectedRange(offset, 0);
+
+ //get the processor
+ String partitionTypeID = viewer.getDocument().getPartition(offset).getType();
+ IContentAssistProcessor processor = contentAssistant.getContentAssistProcessor(partitionTypeID);
+
+ //fire content assist session about to start
+ Method privateFireSessionBeginEventMethod = ContentAssistant.class.getDeclaredMethod(
+ "fireSessionBeginEvent", new Class[] { boolean.class });
+ privateFireSessionBeginEventMethod.setAccessible(true);
+ privateFireSessionBeginEventMethod.invoke(contentAssistant, new Object[] { Boolean.TRUE });
+
+ //get content assist suggestions
+ pages = new ICompletionProposal[pageCount][];
+ for(int p = 0; p < pageCount; ++p) {
+ pages[p] = processor.computeCompletionProposals(viewer, offset);
+ }
+
+ //fire content assist session ending
+ Method privateFireSessionEndEventMethod = ContentAssistant.class.getDeclaredMethod("fireSessionEndEvent",
+ null);
+ privateFireSessionEndEventMethod.setAccessible(true);
+ privateFireSessionEndEventMethod.invoke(contentAssistant, null);
+ }
+
+ return pages;
+ }
+
+ /**
+ * @param pages
+ * @param expectedProposals
+ * @param negativeTest
+ * <code>true</code> if <code>expectedProposals</code> should not be found,
+ * <code>false</code> if
+ * they should be found
+ * @param exactMatch
+ * <code>true</code> if expectedProposals should be compared to actual proposals with
+ * {@link String#equals(Object)}, <code>false</code> if {@link String#indexOf(int)}
+ * should be used
+ * @param inOrder
+ * <code>true</code> if <code>expectedProposals</code> should be found in the order
+ * they are given, <code>false</code> if order does not matter
+ */
+ private static void verifyExpectedProposal(ICompletionProposal[][] pages, String[][] expectedProposals,
+ boolean negativeTest, boolean exactMatch, boolean inOrder) {
+
+ StringBuffer error = new StringBuffer();
+ int lastFoundIndex = -1;
+ String lastFoundProposal = "";
+ for(int page = 0; page < expectedProposals.length; ++page) {
+ for(int expected = 0; expected < expectedProposals[page].length; ++expected) {
+ String expectedProposal = expectedProposals[page][expected];
+ boolean found = false;
+ int suggestion = 0;
+ for( ; suggestion < pages[page].length && !found; ++suggestion) {
+ String displayString = pages[page][suggestion].getDisplayString();
+ found = exactMatch ?
+ displayString.equals(expectedProposal) : displayString.indexOf(expectedProposal) != -1;
+ }
+
+ /* error if checking for in order and this expected proposal was
+ * found at an index lower then the last found proposal */
+ if(inOrder && found && suggestion < lastFoundIndex) {
+ error.append("\nProposal was found out of order: " + expectedProposal + " found before " + lastFoundProposal);
+ }
+
+ if(found && negativeTest) {
+ error.append("\nUnexpected proposal was found on page " + page + ": '" + expectedProposal + "'");
+ } else if(!found && !negativeTest) {
+ error.append("\n Expected proposal was not found on page " + page + ": '" + expectedProposal + "'");
+ }
+
+ if(found) {
+ lastFoundProposal = expectedProposal;
+ lastFoundIndex = suggestion;
+ }
+ }
+ }
+
+ // if errors report them
+ if(error.length() > 0) {
+ StringBuffer expected = new StringBuffer();
+ for(int i = 0; i < expectedProposals.length; i++) {
+ for(int j = 0; j < expectedProposals[i].length; j++) {
+ expected.append(expectedProposals[i][j]);
+ expected.append('\n');
+ }
+ }
+ StringBuffer actual = new StringBuffer();
+ for(int i = 0; i < pages.length; i++) {
+ for(int j = 0; j < pages[i].length; j++) {
+ actual.append(pages[i][j].getDisplayString());
+ actual.append('\n');
+ }
+ }
+ Assert.assertEquals(error.toString(), expected.toString(), actual.toString());
+ }
+ }
+
+ /**
+ *
+ * <p>
+ * Compares the expected proposal Info with the one generated from the JavaDoc
+ * </p>
+ *
+ * @param pages
+ * @param expectedProposalInfo
+ */
+
+ private static void verifyExpectedProposalInfo(ICompletionProposal[][] pages, String[][] expectedProposals,
+ String[][] expectedProposalsInfo) {
+ StringBuffer error = new StringBuffer();
+ String proposalInfo = new String();
+ for(int page = 0; page < expectedProposals.length; ++page) {
+ for(int expected = 0; expected < expectedProposals[page].length; ++expected) {
+ String expectedProposal = expectedProposals[page][expected];
+ String expectedProposalInfo = expectedProposalsInfo[page][expected];
+ boolean found = false;
+ for(int suggestion = 0; suggestion < pages[page].length && !found; ++suggestion) {
+ found = pages[page][suggestion].getDisplayString().equals(expectedProposal);
+ if(found) {
+ proposalInfo = pages[page][suggestion].getAdditionalProposalInfo();
+
+ if(proposalInfo == null || proposalInfo.indexOf(expectedProposalInfo) < 0) {
+ error.append("\n" + "Required proposal info for " + expectedProposal + " does not exist.");
+ }
+ break;
+ }
+
+ }
+ }
+
+ }
+
+ // if errors report them
+ if(error.length() > 0) {
+ StringBuffer expected = new StringBuffer();
+ for(int i = 0; i < expectedProposalsInfo.length; i++) {
+ for(int j = 0; j < expectedProposalsInfo[i].length; j++) {
+ expected.append(expectedProposalsInfo[i][j]);
+ expected.append('\n');
+ }
+ }
+ StringBuffer actual = new StringBuffer();
+ for(int i = 0; i < pages.length; i++) {
+ for(int j = 0; j < pages[i].length; j++) {
+ try {
+ actual.append(new HTML2TextReader(new StringReader(pages[i][j].getAdditionalProposalInfo()),
+ null).getString().trim());
+ } catch(IOException e) {
+ e.printStackTrace();
+ }
+ actual.append('\n');
+ }
+ }
+ Assert.assertEquals(error.toString(), expected.toString(), actual.toString());
+ }
+ }
+
+ /**
+ * <p>
+ * Checks for Duplicates and reports an error if found.
+ * </p>
+ *
+ * @param pages
+ * @param numOfPages
+ */
+ private static void checkForDuplicates(ICompletionProposal[][] pages, int numOfPages) {
+ Set set = new HashSet();
+ StringBuffer error = new StringBuffer();
+
+ for(int suggestion = 0; suggestion < pages[0].length; ++suggestion) {
+ if(set.contains(pages[0][suggestion].toString())) {
+ error.append("\nDuplicate proposal found: '" + pages[0][suggestion] + "'");
+ } else {
+ set.add(pages[0][suggestion].toString());
+ }
+ }
+
+ if(error.length() > 0) {
+ Assert.fail(error.toString());
+ }
+
+ set.clear();
+ }
+
+ /**
+ * <p>
+ * Returns the content assist proposals when invoked at the offset provided.
+ * </p>
+ *
+ * @param fileNum
+ * @param lineNum
+ * @param lineRelativeCharOffset
+ * @param numOfPages
+ */
+ private static ICompletionProposal[][] getHTMLProposals(TestProjectSetup testProject, String filePath, int lineNum, int lineRelativeCharOffset,
+ int numOfPages) throws Exception {
+
+ IFile file = testProject.getFile(filePath);
+
+ IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ IEditorPart part = IDE.openEditor(page, file, "org.eclipse.wst.html.core.htmlsource.source");
+ StructuredTextEditor editor = (StructuredTextEditor) part.getAdapter(ITextEditor.class);
+
+ IDocument doc = editor.getDocumentProvider().getDocument(editor.getEditorInput());
+ int offset = doc.getLineOffset(lineNum) + lineRelativeCharOffset;
+
+ ICompletionProposal[][] pages = getHTMLProposals(editor, offset, numOfPages);
+ return pages;
+ }
+
+ /**
+ * <p>
+ * Invoke content assist on the given editor at the given offset, for the given number of pages
+ * and return the results of each page
+ * </p>
+ */
+ private static ICompletionProposal[][] getHTMLProposals(StructuredTextEditor editor, int offset, int pageCount) throws Exception {
+ // setup the viewer
+ ISourceViewer viewer = editor.getTextViewer();
+ Method getSourceViewerConfiguration = AbstractTextEditor.class.getDeclaredMethod("getSourceViewerConfiguration", new Class[0]);
+ getSourceViewerConfiguration.setAccessible(true);
+ StructuredTextViewerConfiguration configuration = (StructuredTextViewerConfiguration) getSourceViewerConfiguration.invoke(editor, null);
+ IContentAssistant contentAssistant = configuration.getContentAssistant(viewer);
+
+ // get the processor
+ String partitionTypeID = viewer.getDocument().getPartition(offset).getType();
+ IContentAssistProcessor processor = contentAssistant.getContentAssistProcessor(partitionTypeID);
+
+ // fire content assist session about to start
+ Method privateFireSessionBeginEventMethod = ContentAssistant.class.getDeclaredMethod("fireSessionBeginEvent",
+ new Class[] { boolean.class });
+ privateFireSessionBeginEventMethod.setAccessible(true);
+ privateFireSessionBeginEventMethod.invoke(contentAssistant, new Object[] { Boolean.TRUE });
+
+ // get content assist suggestions
+ ICompletionProposal[][] pages = new ICompletionProposal[pageCount][];
+ for(int p = 0; p < pageCount; ++p) {
+ pages[p] = processor.computeCompletionProposals(viewer, offset);
+ }
+
+ // fire content assist session ending
+ Method privateFireSessionEndEventMethod = ContentAssistant.class.getDeclaredMethod("fireSessionEndEvent", null);
+ privateFireSessionEndEventMethod.setAccessible(true);
+ privateFireSessionEndEventMethod.invoke(contentAssistant, null);
+
+ editor.close(false);
+ return pages;
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/DoublyNestedFunctionTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/DoublyNestedFunctionTests.java
new file mode 100644
index 0000000..fb393e1
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/DoublyNestedFunctionTests.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class DoublyNestedFunctionTests extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Doubly Nested Functions JavaScript Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public DoublyNestedFunctionTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public DoublyNestedFunctionTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts =
+ new TestSuite(DoublyNestedFunctionTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testFindInnerFunctions2_ExpressionNotStarted() throws Exception {
+ String[][] expectedProposals = new String[][] { { "outerFunc() - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerOuter.html", 6, 0, expectedProposals);
+ }
+
+ public void test_FindInnerFunctions2_NegativeTest_ExpressionStarted_1() throws Exception {
+ String[][] unexpectedProposals =
+ new String[][] { { "innerFunc()", "insideInnerFunc()", "localInnerFunc : Function",
+ "localInnerFunc(param1)" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerOuter.html", 4, 1, unexpectedProposals, true, false);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/DoublyNestedFunctionTests_Edited.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/DoublyNestedFunctionTests_Edited.java
new file mode 100644
index 0000000..2e4eb6c
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/DoublyNestedFunctionTests_Edited.java
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class DoublyNestedFunctionTests_Edited extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Doubly Nested Functions JavaScript Content Assist after Edit";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public DoublyNestedFunctionTests_Edited() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public DoublyNestedFunctionTests_Edited(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts =
+ new TestSuite(DoublyNestedFunctionTests_Edited.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false) {
+ public void additionalSetUp() throws Exception {
+ this.editFile("InnerOuter.js", 7, 11, 6, "edited");
+ this.editFile("InnerOuter.js", 0, 9, 9, "editedFunc");
+ }
+ };
+
+ return fTestProjectSetup;
+ }
+
+ public void testFindInnerFunctions2_AfterEdit_ExpressionNotStarted() throws Exception {
+ String[][] expectedProposals = new String[][] { { "editedFunc() - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerOuter.html", 6, 0, expectedProposals);
+ }
+
+ public void testMustFail_FindInnerFunctions2_AfterEdit_ExpressionStarted_1() throws Exception {
+ String[][] unexpectedProposals =
+ new String[][] { { "innerFunc()", "editedInnerFunc()", "localInnerFunc : Function",
+ "localInnerFunc(param1)" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerOuter.html", 10, 1, unexpectedProposals, true, false);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/DuplicatesTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/DuplicatesTests.java
new file mode 100644
index 0000000..d17faaf
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/DuplicatesTests.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class DuplicatesTests extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test for Duplicate Content Assist Proposals";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public DuplicatesTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public DuplicatesTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts = new TestSuite(DuplicatesTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testForDuplicates_Expression1() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "ConstructorCamelCase.html", 10, 7);
+ }
+
+ public void testForDuplicates_Expression2() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "ConstructorCamelCase.html", 12, 8);
+ }
+
+ public void testForDuplicates_Expression3() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "JSClasses.html", 10, 6);
+ }
+
+ public void testForDuplicates_Expression4() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "JSClasses.html", 14, 10);
+ }
+
+ public void testForDuplicates_Expression5() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "JSClasses.html", 18, 5);
+ }
+
+ public void testForDuplicates_Expression6() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "Test.html", 8, 7);
+ }
+
+ public void testForDuplicates_Expression7() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "ReferenceInMemberAndStaticFunctions.html", 7, 6);
+ }
+
+ public void testForDuplicates_Expression8() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "InnerOuter.html", 10, 1);
+ }
+
+ public void testForDuplicates_Expression9() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "GlobalFunctions.html", 10, 3);
+ }
+
+ public void testForDuplicates_Expression10() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "GlobalFunctions.html", 12, 5);
+ }
+
+ public void testForDuplicates_Expression11() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "NamedFunctionAssignedToVariables.html", 8, 1);
+ }
+
+ public void testForDuplicates_Expression12() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "NamedFunctionAssignedToVariables.html", 8, 0);
+ }
+
+ public void testForDuplicates_Expression13() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "Global.html", 6, 0);
+ }
+
+ public void testForDuplicates_Expression14() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "Global.html", 10, 7);
+ }
+
+ public void testForDuplicates_Expression15() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "Crazy.html", 10, 4);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalFunctionTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalFunctionTests.java
new file mode 100644
index 0000000..9340599
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalFunctionTests.java
@@ -0,0 +1,146 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+public class GlobalFunctionTests extends TestCase {
+
+ private static final String TEST_NAME = "Test Global Functions JavaScript Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public GlobalFunctionTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public GlobalFunctionTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts = new TestSuite(GlobalFunctionTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testFindFunctions_ExpressionStarted_0() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcOne() - Global", "funcTwo() : String - Global", "funcThree(paramOne) - Global",
+ "funcFour(paramOne, paramTwo) : Number - Global",
+ "funcFive(Number paramOne, String paramTwo) : String - Global",
+ "funcSix(paramOne, String paramTwo) : Number - Global",
+ "funcSeven(String paramOne, paramTwo) : Number - Global",
+ "funcEight(paramOne) : String - Global", "funcNine(paramOne) : Number - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalFunctions.html", 6, 0, expectedProposals);
+ }
+
+ public void testFindFunctions_ExpressionStarted_1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcOne() - Global", "funcTwo() : String - Global", "funcThree(paramOne) - Global",
+ "funcFour(paramOne, paramTwo) : Number - Global",
+ "funcFive(Number paramOne, String paramTwo) : String - Global",
+ "funcSix(paramOne, String paramTwo) : Number - Global",
+ "funcSeven(String paramOne, paramTwo) : Number - Global",
+ "funcEight(paramOne) : String - Global", "funcNine(paramOne) : Number - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalFunctions.html", 8, 1, expectedProposals);
+ }
+
+ public void testFindFunctions_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcTwo() : String - Global", "funcThree(paramOne) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalFunctions.html", 10, 5, expectedProposals);
+ }
+
+ public void testFindFunctions_ExpressionStarted_CamelCase() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcTwo() : String - Global", "funcThree(paramOne) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalFunctions.html", 12, 2, expectedProposals);
+ }
+
+
+ public void testNamedFunctionsAssignedToVariables_ExpressionNotStarted() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "foo1 : Function - Global", "foo1(param2) - Global", "foo2 : Function - Global",
+ "foo2(param3, param4) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "NamedFunctionAssignedToVariables.html", 6, 0,
+ expectedProposals);
+ }
+
+ public void testNamedFunctionsAssignedToVariables_ExpressionStarted1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "foo1 : Function - Global", "foo1(param2) - Global", "foo2 : Function - Global",
+ "foo2(param3, param4) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "NamedFunctionAssignedToVariables.html", 8, 1,
+ expectedProposals);
+ }
+
+ public void testNamedFunctionsAssignedToVariables_ExpressionNotStarted_NegativeTest()
+ throws Exception {
+ String[][] expectedProposals = new String[][] { { "foo1Ignored", "foo2Ignored" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "NamedFunctionAssignedToVariables.html", 6, 0,
+ expectedProposals, true, false);
+ }
+
+ public void testNamedFunctionsAssignedToVariables_ExpressionStarted1_NegativeTest()
+ throws Exception {
+ String[][] expectedProposals = new String[][] { { "foo1Ignored", "foo2Ignored" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "NamedFunctionAssignedToVariables.html", 8, 1,
+ expectedProposals, true, false);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalFunctionTests_Edited.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalFunctionTests_Edited.java
new file mode 100644
index 0000000..304d7fd
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalFunctionTests_Edited.java
@@ -0,0 +1,165 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class GlobalFunctionTests_Edited extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Global Functions JavaScript Content Assist after Edit";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public GlobalFunctionTests_Edited() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public GlobalFunctionTests_Edited(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts =
+ new TestSuite(GlobalFunctionTests_Edited.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false) {
+ /**
+ * @see org.eclipse.wst.jsdt.ui.tests.contentassist.ContentAssistTestUtilities.ContentAssistTestsSetup#additionalSetUp()
+ */
+ public void additionalSetUp() throws Exception {
+ /* file -> GlobalFunctions.js
+ * funcOne -> functionOne
+ * funcTwo -> functionTwo */
+ this.editFile("GlobalFunctions.js", 0, 9, 4, "function");
+ this.editFile("GlobalFunctions.js", 4, 9, 4, "function");
+
+ this.editFile("NamedFunctionAssignedToVariables.js", 0, 4, 4, "foo1Edit");
+ this.editFile("NamedFunctionAssignedToVariables.js", 0, 24, 4, "foo1Edit");
+ this.editFile("NamedFunctionAssignedToVariables.js", 4, 0, 4, "foo2Edit");
+ this.editFile("NamedFunctionAssignedToVariables.js", 4, 20, 4, "foo2Edit");
+ }
+ };
+
+ return fTestProjectSetup;
+ }
+
+ public void testFindFunctions_ExpressionStarted_0() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "functionOne() - Global", "functionTwo() : String - Global",
+ "funcThree(paramOne) - Global", "funcFour(paramOne, paramTwo) : Number - Global",
+ "funcFive(Number paramOne, String paramTwo) : String - Global",
+ "funcSix(paramOne, String paramTwo) : Number - Global",
+ "funcSeven(String paramOne, paramTwo) : Number - Global",
+ "funcEight(paramOne) : String - Global", "funcNine(paramOne) : Number - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalFunctions.html", 8, 1, expectedProposals);
+ }
+
+ public void testFindFunctions_ExpressionStarted_1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "functionOne() - Global", "functionTwo() : String - Global",
+ "funcThree(paramOne) - Global", "funcFour(paramOne, paramTwo) : Number - Global",
+ "funcFive(Number paramOne, String paramTwo) : String - Global",
+ "funcSix(paramOne, String paramTwo) : Number - Global",
+ "funcSeven(String paramOne, paramTwo) : Number - Global",
+ "funcEight(paramOne) : String - Global", "funcNine(paramOne) : Number - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalFunctions.html", 10, 4, expectedProposals);
+ }
+
+ public void testFindFunctions_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "functionTwo() : String - Global", "funcThree(paramOne) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalFunctions.html", 12, 5, expectedProposals);
+ }
+
+ public void testNamedFunctionsAssignedToVariables_ExpressionNotStarted() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "foo1Edit : Function - Global", "foo1Edit(param2) - Global",
+ "foo2Edit : Function - Global", "foo2Edit(param3, param4) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "NamedFunctionAssignedToVariables.html", 6, 0,
+ expectedProposals);
+ }
+
+ public void testNamedFunctionsAssignedToVariables_ExpressionStarted1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "foo1Edit : Function - Global", "foo1Edit(param2) - Global",
+ "foo2Edit : Function - Global", "foo2Edit(param3, param4) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "NamedFunctionAssignedToVariables.html", 8, 1,
+ expectedProposals);
+ }
+
+ public void testNamedFunctionsAssignedToVariables_ExpressionNotStarted_NegativeTest()
+ throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "foo1Ignored", "foo2Ignored", "foo1EditIgnored", "foo2EditIgnored",
+ "foo1 : Function - Global", "foo1(param2) - Global", "foo2 : Function - Global",
+ "foo2(param3, param4) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "NamedFunctionAssignedToVariables.html", 6, 0,
+ expectedProposals, true, false);
+ }
+
+ public void testNamedFunctionsAssignedToVariables_ExpressionStarted1_NegativeTest()
+ throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "foo1Ignored", "foo2Ignored", "foo1EditIgnored", "foo2EditIgnored",
+ "foo1 : Function - Global", "foo1(param2) - Global", "foo2 : Function - Global",
+ "foo2(param3, param4) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "NamedFunctionAssignedToVariables.html", 8, 1,
+ expectedProposals, true, false);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalObjectLiteralTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalObjectLiteralTests.java
new file mode 100644
index 0000000..d94392a
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalObjectLiteralTests.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class GlobalObjectLiteralTests extends TestCase {
+
+ private static final String TEST_NAME = "Test Global Object Literals JavaScript Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public GlobalObjectLiteralTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public GlobalObjectLiteralTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts = new TestSuite(GlobalObjectLiteralTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+ public void testFindGlobalObjectLiteral_0() throws Exception {
+ String[][] expectedProposals = new String[][] { { "org : {} - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalObjectLiterals.html", 6, 0, expectedProposals);
+ }
+
+ public void testFindGlobalObjectLiteral_1() throws Exception {
+ String[][] expectedProposals = new String[][] { { "org : {} - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalObjectLiterals.html", 8, 1, expectedProposals);
+ }
+
+ public void _testFindFieldOnGlobalObjectLiteral_0() throws Exception {
+ String[][] expectedProposals = new String[][] { { "eclipse : {} - {}", "eclipse2 : {} - {}" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalObjectLiterals.html", 10, 4, expectedProposals);
+ }
+
+ public void _testFindFieldOnGlobalObjectLiteral_1() throws Exception {
+ String[][] expectedProposals = new String[][] { { "eclipse : {} - {}", "eclipse2 : {} - {}" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalObjectLiterals.html", 10, 5, expectedProposals);
+ }
+
+ public void _testFindFunctionOnFieldOnGlobalObjectLiteral_0() throws Exception {
+ String[][] expectedProposals = new String[][] { { "fun() - {}", "crazy() - {}" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "GlobalOjectLiterals.html", 12, 12, expectedProposals);
+ }
+
+ public void testFindDuplicateGlobalObjectLiteral_Expression_0() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "GlobalObjectLiterals.html", 6, 0);
+ }
+
+ public void testFindDuplicateGlobalObjectLiteral_Expression_1() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "GlobalObjectLiterals.html", 8, 1);
+ }
+
+ public void testFindDuplicateFieldOnGlobalObjectLiteral_Expression_2() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "GlobalObjectLiterals.html", 10, 4);
+ }
+
+ public void testFindDuplicateFieldOnGlobalObjectLiteral_0() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "GlobalObjectLiterals.html", 10, 5);
+ }
+
+ public void testFindDuplicateFunctionOnFieldOnGlobalObjectLiteral_1() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "GlobalObjectLiterals.html", 12, 12);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalVariableTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalVariableTests.java
new file mode 100644
index 0000000..ecd0d1d
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalVariableTests.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class GlobalVariableTests extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Global Field Variables JavaScript Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public GlobalVariableTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public GlobalVariableTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(GlobalVariableTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testFindGlobalVariables_Expression_NotStarted() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "globalNum : Number - Global", "globalString : String - Global",
+ "globalVar - Global", "globalVarNum : Number - Global", "globalVarObject : {} - Global",
+ "globalVarString : String - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Global.html", 6, 0, expectedProposals);
+ }
+
+ public void testFindGlobalVariables_ExpressionStarted_1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "globalNum : Number - Global", "globalString : String - Global",
+ "globalVar - Global", "globalVarNum : Number - Global", "globalVarObject : {} - Global",
+ "globalVarString : String - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Global.html", 8, 1, expectedProposals);
+ }
+
+ public void testFindGlobalVariables_NegativeTest_1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "globalNum : Number - Global", "globalString : String - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Global.html", 10, 7, expectedProposals, true, false);
+ }
+
+ public void testFindGlobalVariables_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "globalVarNum : Number - Global", "globalVarObject : {} - Global",
+ "globalVarString : String - Global", "globalVar - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Global.html", 10, 7, expectedProposals);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalVariableTests_Edited.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalVariableTests_Edited.java
new file mode 100644
index 0000000..ab9f09d
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/GlobalVariableTests_Edited.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class GlobalVariableTests_Edited extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Global Field Variables JavaScript Content Assist after Edit";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public GlobalVariableTests_Edited() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public GlobalVariableTests_Edited(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(GlobalVariableTests_Edited.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false) {
+ public void additionalSetUp() throws Exception {
+ /* file -> Global.js
+ * globalNum -> globalEditedNumber
+ * globalString -> globalEditedString */
+ this.editFile("Global.js", 1, 4, 12, "globalEditedNumber");
+ this.editFile("Global.js", 7, 0, 12, "globalEditedString");
+
+ /* file -> Global.js
+ * globalV -> globalE */
+ this.editFile("Global.js", 11, 6, 1, "E");
+ this.editFile("Global.js", 15, 1, 1, "E");
+ this.editFile("Global.js", 17, 1, 1, "E");
+
+ /* file -> Global.html
+ * globalV -> globalE */
+ this.editFile("Global.html", 10, 6, 1, "E");
+ this.editFile("Global.html", 12, 1, 1, "E");
+ this.editFile("Global.html", 14, 1, 1, "E");
+ }
+ };
+
+ return fTestProjectSetup;
+ }
+
+ public void testFindFieldSuggestions_AfterEdit_Expression_NotStarted() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "globalNum : Number - Global", "globalEditedString : String - Global",
+ "globalEditedNumber : Number - Global", "globalVarObject : {} - Global",
+ "globalVarString : String - Global", "globalVar - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Global.html", 6, 0, expectedProposals);
+ }
+
+ public void testFindFieldSuggestions_AfterEdit_ExpressionStarted_1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "globalNum : Number - Global", "globalEditedString : String - Global",
+ "globalVar - Global", "globalEditedNumber : Number - Global", "globalVarObject : {} - Global",
+ "globalVarString : String - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Global.html", 8, 1, expectedProposals);
+ }
+
+ public void testFindFieldSuggestions_AfterEdit_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "globalEditedNumber : Number - Global", "globalEditedString : String - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Global.html", 10, 6, expectedProposals);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/InnerFunctionTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/InnerFunctionTests.java
new file mode 100644
index 0000000..ef2da73
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/InnerFunctionTests.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class InnerFunctionTests extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Inner Functions JavaScript Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public InnerFunctionTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public InnerFunctionTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts = new TestSuite(InnerFunctionTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testFindInnerFunctions_EmptyLine() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcTen(paramEleven, paramTwelve) - Global", "funcTenInner2 : Function - Global",
+ "funcTenInner2(param1, param2) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerFunctions.html", 6, 0, expectedProposals);
+ }
+
+ public void testFindInnerFunctions_ExpressionStarted() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcTen(paramEleven, paramTwelve) - Global", "funcTenInner2 : Function - Global",
+ "funcTenInner2(param1, param2) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerFunctions.html", 8, 5, expectedProposals);
+ }
+
+ public void testFindInnerFunctions_CamelCase() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcTen(paramEleven, paramTwelve) - Global", "funcTenInner2 : Function - Global",
+ "funcTenInner2(param1, param2) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerFunctions.html", 10, 2, expectedProposals);
+ }
+
+ public void testFindInnerFunctions_EmptyLine_NegativeTest() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcTenInner : Function - Global", "funcTenInner1 : Function - Global",
+ "funcTenInner(newParam111, newParam222) : String - Global", "funcTenInner1(param1) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerFunctions.html", 6, 0, expectedProposals, true, false);
+ }
+
+ public void testFindInnerFunctions_ExpresionStarted_NegativeTest() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcTenInner : Function - Global", "funcTenInner1 : Function - Global",
+ "funcTenInner(newParam111, newParam222) : String - Global", "funcTenInner1(param1) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerFunctions.html", 8, 5, expectedProposals, true, false);
+ }
+
+ public void testFindDuplicateInnerFunctions_EmptyLine() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "InnerFunctions.html", 6, 0);
+ }
+
+ public void testFindDuplicateInnerFunctions_ExpressionStarted() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "InnerFunctions.html", 8, 5);
+ }
+
+ public void testFindDuplicateInnerFunctions_CamelCase() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "InnerFunctions.html", 10, 2);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/InnerFunctionTests_Edited.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/InnerFunctionTests_Edited.java
new file mode 100644
index 0000000..ccca9a5
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/InnerFunctionTests_Edited.java
@@ -0,0 +1,141 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class InnerFunctionTests_Edited extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Inner Functions JavaScript Content Assist after Edit";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public InnerFunctionTests_Edited() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public InnerFunctionTests_Edited(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts = new TestSuite(InnerFunctionTests_Edited.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false) {
+
+ public void additionalSetUp() throws Exception {
+ this.editFile("InnerFunctions.js", 1, 22, 0, "Edit");
+ this.editFile("InnerFunctions.js", 5, 17, 0, "Edit");
+ this.editFile("InnerFunctions.js", 9, 13, 0, "Edit");
+ }
+ };
+
+ return fTestProjectSetup;
+ }
+
+ public void testFindInnerFunctions_le_EmptyLine() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcTen(paramEleven, paramTwelve) - Global",
+ "funcTenInnerEdit2 : Function - Global", "funcTenInnerEdit2(param1, param2) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerFunctions.html", 6, 0, expectedProposals);
+ }
+
+ public void testFindInnerFunctions_ExpressionStarted() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcTen(paramEleven, paramTwelve) - Global",
+ "funcTenInnerEdit2 : Function - Global", "funcTenInnerEdit2(param1, param2) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerFunctions.html", 8, 5, expectedProposals);
+ }
+
+ public void testFindInnerFunctions_CamelCase() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcTen(paramEleven, paramTwelve) - Global",
+ "funcTenInnerEdit2 : Function - Global", "funcTenInnerEdit2(param1, param2) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerFunctions.html", 10, 2, expectedProposals);
+ }
+
+ public void testFindInnerFunctions_EmptyLine_NegativeTest() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcTenInnerEdit : Function - Global", "funcTenInnerEdit1 : Function - Global",
+ "funcTenInnerEdit(newParam111, newParam222) : String - Global",
+ "funcTenInnerEdit1(param1) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerFunctions.html", 6, 0, expectedProposals, true, false);
+ }
+
+ public void testFindInnerFunctions_ExpresionStarted_NegativeTest() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "funcTenInnerEdit : Function - Global", "funcTenInnerEdit1 : Function - Global",
+ "funcTenInnerEdit(newParam111, newParam222) : String - Global",
+ "funcTenInnerEdit1(param1) - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "InnerFunctions.html", 8, 5, expectedProposals, true, false);
+ }
+
+ public void testFindDuplicateInnerFunctions_EmptyLine() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "InnerFunctions.html", 6, 0);
+ }
+
+ public void testFindDuplicateInnerFunctions_ExpressionStarted() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "InnerFunctions.html", 8, 5);
+ }
+
+ public void testFindDuplicateInnerFunctions_CamelCase() throws Exception {
+ ContentAssistTestUtilities.verifyNoDuplicates(fTestProjectSetup, "InnerFunctions.html", 10, 2);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/LocalVarDefinedInFunctionInObjectLiteralTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/LocalVarDefinedInFunctionInObjectLiteralTests.java
new file mode 100644
index 0000000..b345b9f
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/LocalVarDefinedInFunctionInObjectLiteralTests.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class LocalVarDefinedInFunctionInObjectLiteralTests extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Local Variable Defined in Function in an Object Literal";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public LocalVarDefinedInFunctionInObjectLiteralTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public LocalVarDefinedInFunctionInObjectLiteralTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+
+ public static Test suite() {
+ TestSuite ts = new TestSuite(LocalVarDefinedInFunctionInObjectLiteralTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testLocalVarDefinedInFuncationInOBjectLiteral_NegativeTest() throws Exception {
+ String[][] unexpectedProposals = new String[][] { { "ninjaLocal : Number - Global", "ninjaLocal : Number" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "LocalVariableDefinedInFunctionInObjectLiteral.html", 0, 3,
+ unexpectedProposals, true, false);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/OtherContentAssistTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/OtherContentAssistTests.java
new file mode 100644
index 0000000..4c6e2cc
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/OtherContentAssistTests.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+public class OtherContentAssistTests extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Other JavaScript Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public OtherContentAssistTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public OtherContentAssistTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(OtherContentAssistTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testFindFunctionOnType_OtherFile_ExpressionStarted_0() throws Exception {
+ String[][] expectedProposals = new String[][] { { "myFunc1(Number param1) : Number - Crazy", "foo : String - Crazy" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Crazy.html", 10, 4, expectedProposals);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ProposalInfoTest.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ProposalInfoTest.java
new file mode 100644
index 0000000..1efd142
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ProposalInfoTest.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class ProposalInfoTest extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test JavaScript Content Assist Proposal Info";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public ProposalInfoTest() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public ProposalInfoTest(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(ProposalInfoTest.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testProposalInfo_Expression_NotStarted() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "HelloWorld() - Global", "HelloAmerica(State, City) - Global" } };
+ String[][] expectedInfo = new String[][] { { "Hello World", "State" } };
+ ContentAssistTestUtilities.runProposalInfoTest(fTestProjectSetup, "ProposalInfo.html", 7, 0, expectedProposals, expectedInfo);
+ }
+
+ public void testProposalInfo_ExpressionStarted_1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "HelloWorld() - Global", "HelloAmerica(State, City) - Global" } };
+ String[][] expectedInfo = new String[][] { { "Hello World", "State" } };
+ ContentAssistTestUtilities.runProposalInfoTest(fTestProjectSetup, "ProposalInfo.html", 9, 3, expectedProposals, expectedInfo);
+ }
+
+ public void _testProposalInfo_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals = new String[][] { { "nodeOne : String - Global" } };
+ String[][] expectedInfo = new String[][] { { "nodeOne = test" } };
+ ContentAssistTestUtilities.runProposalInfoTest(fTestProjectSetup, "ProposalInfo.html", 11, 3, expectedProposals, expectedInfo);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ProposalInfoTest_Edited.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ProposalInfoTest_Edited.java
new file mode 100644
index 0000000..7074c29
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/ProposalInfoTest_Edited.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class ProposalInfoTest_Edited extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Edited JavaScript Content Assist Proposal Info";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public ProposalInfoTest_Edited() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public ProposalInfoTest_Edited(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(ProposalInfoTest_Edited.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false) {
+
+ public void additionalSetUp() throws Exception {
+ /* File Edited : ProposalInfo.js
+ * World -> Earth
+ * State -> NC
+ * City -> Wake
+ * nodeOne = test -> nodeOne = Edit */
+ this.editFile("ProposalInfo.js", 1, 9, 5, "Earth");
+ this.editFile("ProposalInfo.js", 8, 10, 5, "NC");
+ this.editFile("ProposalInfo.js", 18, 13, 4, "Edit");
+ }
+ };
+
+ return fTestProjectSetup;
+ }
+
+ public void testProposalInfo_AfterEdit_Expression_NotStarted() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "HelloWorld() - Global", "HelloAmerica(State, City) - Global" } };
+ String[][] expectedInfo = new String[][] { { "Hello Earth", "NC" } };
+ ContentAssistTestUtilities.runProposalInfoTest(fTestProjectSetup, "ProposalInfo.html", 7, 0, expectedProposals, expectedInfo);
+ }
+
+ public void testProposalInfo_AfterEdit_ExpressionStarted_1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "HelloWorld() - Global", "HelloAmerica(State, City) - Global" } };
+ String[][] expectedInfo = new String[][] { { "Hello Earth", "Wake" } };
+ ContentAssistTestUtilities.runProposalInfoTest(fTestProjectSetup, "ProposalInfo.html", 9, 3, expectedProposals, expectedInfo);
+ }
+
+ public void _testProposalInfo_AfterEdit_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals = new String[][] { { "nodeOne : String - Global" } };
+ String[][] expectedInfo = new String[][] { { "nodeOne = Edit" } };
+ ContentAssistTestUtilities.runProposalInfoTest(fTestProjectSetup, "ProposalInfo.html", 11, 3, expectedProposals, expectedInfo);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/SingleLineSriptTagTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/SingleLineSriptTagTests.java
new file mode 100644
index 0000000..ef49b85
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/SingleLineSriptTagTests.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2013 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class SingleLineSriptTagTests extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Single Line Script Tags Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public SingleLineSriptTagTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public SingleLineSriptTagTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(SingleLineSriptTagTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testNoSpaceAtEnd() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "Date(s) - Date"} };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "SingleLineScriptTag.html", 5, 44, expectedProposals);
+ }
+
+ public void testSpaceAtEnd() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "Date(s) - Date"} };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "SingleLineScriptTag.html", 6, 44, expectedProposals);
+ }
+
+ public void testEmptyNoSpace() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "alert(String message) - Window"} };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "SingleLineScriptTag.html", 7, 31, expectedProposals);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/StaticTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/StaticTests.java
new file mode 100644
index 0000000..cde3efc
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/StaticTests.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2013 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class StaticTests extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Static vs Non Static JavaScript Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public StaticTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public StaticTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(StaticTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+// public void testCamelCase_ExpressionStarted_1() throws Exception {
+// String[][] expectedProposals = new String[][] { { "getServerIP() : String - Server" } };
+// ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 8, 11, expectedProposals);
+// }
+
+ public void testStatic_CamelCase_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals = new String[][] { { "yahooDotCom : Server - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 10, 3, expectedProposals);
+ }
+
+ public void testStatic_CamelCase_ExpressionStarted_3() throws Exception {
+ String[][] expectedProposals = new String[][] { { "clientIP : String - Server" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 12, 15, expectedProposals);
+ }
+
+// public void testStatic__ExpressionStarted_4() throws Exception {
+// String[][] expectedProposals =
+// new String[][] { { "getClientPort() - Server", "getClientIP() : String - Server",
+// "getServerIP() : String - Server" } };
+// ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 14, 13, expectedProposals);
+// }
+
+ public void testStatic__ExpressionStarted_5() throws Exception {
+ String[][] expectedProposals = new String[][] { { "serverIP : String - Server" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 16, 8, expectedProposals);
+ }
+
+ public void testStatic_NegativeTest_ExpressionStarted_4() throws Exception {
+ String[][] expectedProposals = new String[][] { { "getServerIP() - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 14, 13, expectedProposals, true, false);
+ }
+
+ public void testStatic_NegativeTest_ExpressionStarted_5() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "clientIP : String - Server", "getClientIP() - Global", "getClientPort() - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 16, 8, expectedProposals, true, false);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/StaticTests_Edited.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/StaticTests_Edited.java
new file mode 100644
index 0000000..20d2536
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/StaticTests_Edited.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2013 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class StaticTests_Edited extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Edited for Static vs Non Static JavaScript Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public StaticTests_Edited() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public StaticTests_Edited(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(StaticTests_Edited.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false) {
+ public void additionalSetUp() throws Exception {
+ /* file -> StaticTests.js
+ * getServerIP -> getRouterIP
+ * serverIP -> routerIP
+ * gSIP -> gRIP
+ * client -> switch
+ * Client -> Switch
+ * cIP -> sIP */
+ this.editFile("StaticTests.js", 7, 10, 6, "Router");
+ this.editFile("StaticTests.js", 10, 7, 8, "routerIP");
+ this.editFile("StaticTests.js", 8, 15, 8, "routerIP");
+ this.editFile("StaticTests.js", 28, 8, 1, "R");
+ this.editFile("StaticTests.js", 14, 20, 6, "Switch");
+ this.editFile("StaticTests.js", 17, 17, 8, "switchIP");
+ this.editFile("StaticTests.js", 18, 20, 8, "SwitchIP");
+ this.editFile("StaticTests.js", 19, 13, 8, "switchIP");
+ this.editFile("StaticTests.js", 32, 12, 1, "s");
+
+ /* file -> StaticTests.html */
+ this.editFile("StaticTests.html", 8, 8, 1, "R");
+ this.editFile("StaticTests.html", 12, 12, 1, "s");
+ }
+ };
+
+ return fTestProjectSetup;
+ }
+
+// public void testStatic_CamelCase_AfterEdit_ExpressionStarted_1() throws Exception {
+// String[][] expectedProposals = new String[][] { { "getRouterIP() : String - Server" } };
+// ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 8, 11, expectedProposals);
+// }
+
+ public void testStatic_CamelCase_AfterEdit_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals = new String[][] { { "yahooDotCom : Server - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 10, 3, expectedProposals);
+ }
+
+ public void testStatic_CamelCase_AfterEdit_ExpressionStarted_3() throws Exception {
+ String[][] expectedProposals = new String[][] { { "switchIP : String - Server" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 12, 15, expectedProposals);
+ }
+
+ public void testStatic_OtherFile_ExpressionStarted_4() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "switchIP : String - Server", "port - Server", "prototype - Server",
+ "getSwitchIP() : String - Server", "getSwitchPort() - Server" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 14, 12, expectedProposals);
+ }
+
+// public void testStatic_AfterEdit_ExpressionStarted_5() throws Exception {
+// String[][] expectedProposals = new String[][] { { "routerIP : String - Server", "getRouterIP() : String - Server" } };
+// ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 16, 7, expectedProposals);
+// }
+
+ public void testStatic_NegativeTest_AfterEdit_ExpressionStarted_4() throws Exception {
+ String[][] expectedProposals = new String[][] { { "getRouterIP() - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 14, 12, expectedProposals, true, false);
+ }
+
+ public void testStatic_NegativeTest_AfterEdit_ExpressionStarted_5() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "switchIP : String - Server", "getSwitchIP() - Global", "getSwitchPort() - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "StaticTests.html", 16, 7, expectedProposals, true, false);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/TemplateTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/TemplateTests.java
new file mode 100644
index 0000000..8eab928
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/TemplateTests.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class TemplateTests extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test JavaScript Temlate Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public TemplateTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public TemplateTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(TemplateTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testCamelCase_ExpressionStarted_0() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "function - function"} };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "Template.html", 5, 35, expectedProposals);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/TypeTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/TypeTests.java
new file mode 100644
index 0000000..0d63256
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/TypeTests.java
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class TypeTests extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test JavaScript Type Content Assist";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public TypeTests() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public TypeTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(TypeTests.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false);
+
+ return fTestProjectSetup;
+ }
+
+ public void testCamelCase_ExpressionStarted_0() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "Computer.proc.IntelDualCore1 - Computer.proc",
+ "Computer.proc.IntelDualCore2 - Computer.proc" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClassesII.html", 8, 2, expectedProposals);
+ }
+
+ public void testCamelCase_ExpressionStarted_1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "Computer.proc.CeleronXSeries - Computer.proc",
+ "Installed.CorelXSoftware - Installed" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClassesII.html", 10, 2, expectedProposals);
+ }
+
+ public void testCamelCase_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "Computer.proc.IntelDualCore1 - Computer.proc",
+ "Computer.proc.IntelDualCore2 - Computer.proc" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClassesII.html", 12, 3, expectedProposals);
+ }
+
+ public void testClassProperties_ExpressionStarted_3() throws Exception {
+ String[][] expectedProposals = new String[][] { { "Computer : {} - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClassesII.html", 14, 4, expectedProposals);
+ }
+
+ public void testClassProperties_ExpressionStarted_4() throws Exception {
+ String[][] expectedProposals = new String[][] { { "Installed : {} - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClassesII.html", 16, 3, expectedProposals);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/TypeTests_Edited.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/TypeTests_Edited.java
new file mode 100644
index 0000000..22cbd91
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/contentassist/TypeTests_Edited.java
@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 IBM Corporation and others.
+
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.contentassist;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.wst.jsdt.web.ui.tests.internal.TestProjectSetup;
+
+public class TypeTests_Edited extends TestCase {
+ /**
+ * <p>
+ * This tests name
+ * </p>
+ */
+ private static final String TEST_NAME = "Test Edited JavaScript Type Content Asist Edited";
+
+ /**
+ * <p>
+ * Test project setup for this test.
+ * </p>
+ */
+ private static TestProjectSetup fTestProjectSetup;
+
+ /**
+ * <p>
+ * Default constructor
+ * <p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @see #suite()
+ */
+ public TypeTests_Edited() {
+ super(TEST_NAME);
+ }
+
+ /**
+ * <p>
+ * Constructor that takes a test name.
+ * </p>
+ * <p>
+ * Use {@link #suite()}
+ * </p>
+ *
+ * @param name
+ * The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public TypeTests_Edited(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>
+ * Use this method to add these tests to a larger test suite so set up and tear down can be
+ * performed
+ * </p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(TypeTests_Edited.class, TEST_NAME);
+
+ fTestProjectSetup = new TestProjectSetup(ts, "JSDTWebContentAssist", "WebContent", false) {
+ /**
+ * @see org.eclipse.wst.jsdt.ui.tests.contentassist.ContentAssistTestUtilities.ContentAssistTestsSetup#additionalSetUp()
+ */
+ public void additionalSetUp() throws Exception {
+ /* file -> JSClassesII.js
+ * IntelQuadCore -> IntelCentrino
+ * IntelDualCore -> IntelXeonProc
+ * Installed -> Developed */
+ this.editFile("JSClassesII.js", 15, 19, 8, "Centrino");
+ this.editFile("JSClassesII.js", 9, 19, 8, "XeonProc");
+ this.editFile("JSClassesII.js", 12, 19, 8, "XeonProc");
+ this.editFile("JSClassesII.js", 7, 4, 9, "Developed");
+ this.editFile("JSClassesII.js", 22, 0, 9, "Developed");
+ this.editFile("JSClassesII.js", 27, 1, 1, "X");
+ this.editFile("JSClassesII.js", 31, 1, 2, "XP");
+ this.editFile("JSClassesII.html", 8, 1, 1, "X");
+ this.editFile("JSClassesII.js", 35, 0, 3, "Dev");
+ this.editFile("JSClassesII.html", 12, 1, 2, "XP");
+ this.editFile("JSClassesII.html", 16, 0, 3, "Dev");
+ }
+ };
+
+ return fTestProjectSetup;
+ }
+
+ public void testCameCasing_ExpressionStarted_0() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "Computer.proc.IntelXeonProc1 - Computer.proc",
+ "Computer.proc.IntelXeonProc2 - Computer.proc" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClassesII.html", 8, 2, expectedProposals);
+ }
+
+ public void testCamelCasing_ExpressionStarted_1() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "Computer.proc.CeleronXSeries - Computer.proc",
+ "Developed.CorelXSoftware - Developed" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClassesII.html", 10, 2, expectedProposals);
+ }
+
+ public void testCamelCasing_ExpressionStarted_2() throws Exception {
+ String[][] expectedProposals =
+ new String[][] { { "Computer.proc.IntelXeonProc1 - Computer.proc",
+ "Computer.proc.IntelXeonProc2 - Computer.proc" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClassesII.html", 12, 3, expectedProposals);
+ }
+
+ public void testClassProperties_AfterEdit_ExpressionStarted_3() throws Exception {
+ String[][] expectedProposals = new String[][] { { "Computer : {} - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClassesII.html", 14, 4, expectedProposals);
+ }
+
+ public void testClassProperties_AfterEdit_ExpressionStarted_4() throws Exception {
+ String[][] expectedProposals = new String[][] { { "Developed : {} - Global" } };
+ ContentAssistTestUtilities.runProposalTest(fTestProjectSetup, "JSClassesII.html", 16, 3, expectedProposals);
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/conversion/IncludePathTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/conversion/IncludePathTests.java
deleted file mode 100644
index c08a661..0000000
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/conversion/IncludePathTests.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2012 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.web.ui.tests.conversion;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.wst.jsdt.core.IIncludePathEntry;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.internal.ui.util.ConvertAction;
-
-public class IncludePathTests extends TestCase {
- private static IProject createSimpleProject(String name, IPath location, String[] natureIds) {
- IProjectDescription description = ResourcesPlugin.getWorkspace().newProjectDescription(name);
- if (location != null) {
- description.setLocation(location);
- }
- if (natureIds != null) {
- description.setNatureIds(natureIds);
- }
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
- try {
- project.create(description, new NullProgressMonitor());
- project.open(new NullProgressMonitor());
- }
- catch (CoreException e) {
- e.printStackTrace();
- }
- return project;
- }
-
- private static final ISelection selectionFor(IProject p) {
- return new StructuredSelection(new IProject[]{p, ResourcesPlugin.getWorkspace().getRoot().getProject("IncludePathTests")});
- }
-
- public IncludePathTests() {
- this("WEb project Include Path manipulation tests");
- }
-
- public IncludePathTests(String name) {
- super(name);
- }
-
- private void assertConvertedIncludePath(IProject p, String expected) throws JavaScriptModelException {
- ConvertAction convertor = new ConvertAction();
- convertor.selectionChanged(null, selectionFor(p));
- convertor.run(null);
-
- assertIncludePath(p, expected);
- }
-
- private void assertIncludePath(IProject p, String expected) throws JavaScriptModelException {
- IIncludePathEntry[] rawIncludepath = JavaScriptCore.create(p).getRawIncludepath();
- StringBuffer b = new StringBuffer();
- for (int i = 0; i < rawIncludepath.length; i++) {
- b.append(rawIncludepath[i].toString());
- b.append('\n');
- }
- assertEquals("Unexpected Include Path entries", expected, b.toString());
- }
-
-// public void testAddingModuleCoreToProject() throws CoreException {
-// }
-//
-// public void testAddingWebFacetToJSProject() throws CoreException {
-// }
-//
-// public void testAddingWebFacetToNonJSProject() throws CoreException {
-// }
-//
-// public void testBrowserSuperTypeJSProject() throws CoreException {
-// }
-//
-// public void testConvertModuleCoreProject() throws CoreException {
-// }
-
- public void testConvertSimpleProject() throws CoreException {
- IProject p = createSimpleProject(getName(), null, null);
- assertConvertedIncludePath(p, "/testConvertSimpleProject[CPE_SOURCE][K_SOURCE][isExported:false][attributes:provider=org.eclipse.wst.jsdt.web.core.internal.project.ModuleSourcePathProvider]\norg.eclipse.wst.jsdt.launching.JRE_CONTAINER[CPE_CONTAINER][K_SOURCE][isExported:false]\norg.eclipse.wst.jsdt.launching.baseBrowserLibrary[CPE_CONTAINER][K_SOURCE][isExported:false]\n");
- // clean up if we got to the end
- try {
- p.delete(true, true, null);
- }
- catch (Exception e) {
- // not a failure condition
- }
- }
-
- public void testConvertDefaultJSProject() throws CoreException {
- IProject p = createSimpleProject(getName(), null, new String[]{JavaScriptCore.NATURE_ID});
- assertConvertedIncludePath(p, "org.eclipse.wst.jsdt.launching.JRE_CONTAINER[CPE_CONTAINER][K_SOURCE][isExported:false]\norg.eclipse.wst.jsdt.launching.baseBrowserLibrary[CPE_CONTAINER][K_SOURCE][isExported:false]\n/testConvertDefaultJSProject[CPE_SOURCE][K_SOURCE][isExported:false]\n");
- // clean up if we got to the end
- try {
- p.delete(true, true, null);
- }
- catch (Exception e) {
- // not a failure condition
- }
- }
-
- public void testVerifyDefaultIncludePath() throws CoreException {
- IProject p = createSimpleProject(getName(), null, new String[]{JavaScriptCore.NATURE_ID});
- assertIncludePath(p, "org.eclipse.wst.jsdt.launching.JRE_CONTAINER[CPE_CONTAINER][K_SOURCE][isExported:false]\norg.eclipse.wst.jsdt.launching.baseBrowserLibrary[CPE_CONTAINER][K_SOURCE][isExported:false]\n/testVerifyDefaultIncludePath[CPE_SOURCE][K_SOURCE][isExported:false]\n");
- // clean up if we got to the end
- try {
- p.delete(true, true, null);
- }
- catch (Exception e) {
- // not a failure condition
- }
- }
-}
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/format/FormattingTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/format/FormattingTests.java
index d0f40e3..d976dc2 100644
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/format/FormattingTests.java
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/format/FormattingTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2012 IBM Corporation and others.
+ * Copyright (c) 2010, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -183,6 +183,10 @@ public class FormattingTests extends TestCase {
formatAndAssertEquals("test19.html", "test19-fmt.html", new StructuredTextViewerConfigurationJSDT());
}
+ public void testBug377979() throws UnsupportedEncodingException, IOException, CoreException {
+ formatAndAssertEquals("test20.jsp", "test20-fmt.jsp", new StructuredTextViewerConfigurationJSDT());
+ }
+
/**
* @param beforePath - the path of the before file
* @param afterPath - the path of the after file, <b>must not be the same as the before file</b>
@@ -396,12 +400,18 @@ public class FormattingTests extends TestCase {
* @see junit.extensions.TestSetup#tearDown()
*/
public void tearDown() throws Exception {
- //delete test projects
- fProject.delete(true, new NullProgressMonitor());
-
- //reset non-interactive
- if (previousWTPAutoTestNonInteractivePropValue != null) {
- System.setProperty(WTP_AUTOTEST_NONINTERACTIVE, previousWTPAutoTestNonInteractivePropValue);
+ try {
+ // delete test projects
+ fProject.delete(true, new NullProgressMonitor());
+ }
+ catch (CoreException e) {
+ // problems deleting aren't a failure
+ }
+ finally {
+ // reset non-interactive
+ if (previousWTPAutoTestNonInteractivePropValue != null) {
+ System.setProperty(WTP_AUTOTEST_NONINTERACTIVE, previousWTPAutoTestNonInteractivePropValue);
+ }
}
}
}
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/format/TestJSPContentFormatter.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/format/TestJSPContentFormatter.java
new file mode 100644
index 0000000..4837186
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/format/TestJSPContentFormatter.java
@@ -0,0 +1,247 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.format;
+
+import java.io.ByteArrayOutputStream;
+import java.io.CharArrayWriter;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.Region;
+import org.eclipse.jface.text.formatter.FormattingContext;
+import org.eclipse.jface.text.formatter.FormattingContextProperties;
+import org.eclipse.jface.text.formatter.IContentFormatterExtension;
+import org.eclipse.jface.text.formatter.IFormattingContext;
+import org.eclipse.jface.text.source.SourceViewerConfiguration;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
+import org.eclipse.wst.jsdt.core.JavaScriptCore;
+import org.eclipse.wst.jsdt.web.ui.tests.internal.ProjectUtil;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.utils.StringUtils;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.sse.ui.internal.ExtendedConfigurationBuilder;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+
+/**
+ * Taken from org.eclipse.jst.jsp.ui.tests.format.TestContentFormatter
+ */
+public class TestJSPContentFormatter extends TestCase {
+ String wtp_autotest_noninteractive = null;
+ private static final String PROJECT_NAME = "jsdtjspformatting";
+ private static final String UTF_8 = "UTF-8";
+
+ private IFormattingContext fContext;
+ public static Test suite() {
+ TestSuite ts = new TestSuite(TestJSPContentFormatter.class);
+ return ts;
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ String noninteractive = System.getProperty("wtp.autotest.noninteractive");
+ if (noninteractive != null)
+ wtp_autotest_noninteractive = noninteractive;
+ System.setProperty("wtp.autotest.noninteractive", "true");
+
+ if (!ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECT_NAME).exists()) {
+ ProjectUtil.createProject(PROJECT_NAME, null, new String[]{JavaScriptCore.NATURE_ID});
+ ProjectUtil.copyBundleEntriesIntoWorkspace("/testFiles/" + PROJECT_NAME, "/" + PROJECT_NAME);
+ }
+ assertTrue("project could not be created", ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECT_NAME).exists());
+
+ fContext = new FormattingContext();
+ fContext.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(true));
+ }
+
+ private void formatAndAssertEquals(String beforePath, String afterPath, boolean resetPreferences) throws UnsupportedEncodingException, IOException, CoreException {
+ IStructuredModel beforeModel = null, afterModel = null;
+ try {
+ beforeModel = getModelForEdit(beforePath);
+ assertNotNull("could not retrieve structured model for : " + beforePath, beforeModel);
+
+ afterModel = getModelForEdit(afterPath);
+ assertNotNull("could not retrieve structured model for : " + afterPath, afterModel);
+
+ if (resetPreferences) {
+ resetPreferencesToDefault();
+ }
+
+ SourceViewerConfiguration configuration = (SourceViewerConfiguration) ExtendedConfigurationBuilder.getInstance().getConfiguration(ExtendedConfigurationBuilder.SOURCEVIEWERCONFIGURATION, "org.eclipse.jst.jsp.core.jspsource");
+ IContentFormatterExtension formatter = (IContentFormatterExtension) configuration.getContentFormatter(null);
+
+ IDocument document = beforeModel.getStructuredDocument();
+ Region region = new Region(0, document.getLength());
+ fContext.setProperty(FormattingContextProperties.CONTEXT_REGION, region);
+ formatter.format(document, fContext);
+
+ ByteArrayOutputStream formattedBytes = new ByteArrayOutputStream();
+ beforeModel.save(formattedBytes); // "beforeModel" should now be
+ // after the formatter
+
+ ByteArrayOutputStream afterBytes = new ByteArrayOutputStream();
+ afterModel.save(afterBytes);
+
+ String expectedContents = new String(afterBytes.toByteArray(), UTF_8);
+ expectedContents = StringUtils.replace(expectedContents, "\r\n", "\r");
+ expectedContents = StringUtils.replace(expectedContents, "\r", "\n");
+
+ String actualContents = new String(formattedBytes.toByteArray(), UTF_8);
+ actualContents = StringUtils.replace(actualContents, "\r\n", "\r");
+ actualContents = StringUtils.replace(actualContents, "\r", "\n");
+
+ assertTrue(onlyWhiteSpaceDiffers(expectedContents, actualContents));
+ assertEquals("Formatted document differs from the expected.", expectedContents, actualContents);
+ }
+ finally {
+ if (beforeModel != null)
+ beforeModel.releaseFromEdit();
+ if (afterModel != null)
+ afterModel.releaseFromEdit();
+ }
+ }
+
+ private void formatAndAssertSignificantEquals(String beforePath, boolean resetPreferences) throws UnsupportedEncodingException, IOException, CoreException {
+ StructuredTextEditor editor = (StructuredTextEditor) IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(), ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(beforePath)), "org.eclipse.jst.jsp.core.jspsource.source", true);
+ try {
+ String before = editor.getDocumentProvider().getDocument(editor.getEditorInput()).get();
+ editor.getTextViewer().doOperation(StructuredTextViewer.FORMAT_DOCUMENT);
+
+ String after = editor.getDocumentProvider().getDocument(editor.getEditorInput()).get();
+ assertTrue(onlyWhiteSpaceDiffers(before, after));
+ }
+ finally {
+ editor.close(false);
+ }
+ }
+
+ /**
+ * must release model (from edit) after
+ *
+ * @param filename
+ * relative to this class (TestFormatProcessorCSS)
+ */
+ private IStructuredModel getModelForEdit(final String filename) {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(filename));
+ assertTrue("unable to find file: " + filename, file.exists());
+
+ IStructuredModel model = null;
+ try {
+ IModelManager modelManager = StructuredModelManager.getModelManager();
+ model = modelManager.getModelForEdit(file);
+ }
+ catch (CoreException ce) {
+ ce.printStackTrace();
+ }
+ catch (IOException io) {
+ io.printStackTrace();
+ }
+ return model;
+ }
+
+ /**
+ * Useful for making sure all significant content was retained.
+ *
+ * @param expectedContents
+ * @param actualContents
+ * @return
+ */
+ private boolean onlyWhiteSpaceDiffers(String expectedContents, String actualContents) {
+ CharArrayWriter writer1 = new CharArrayWriter();
+ char[] expected = expectedContents.toCharArray();
+ for (int i = 0; i < expected.length; i++) {
+ if (!Character.isWhitespace(expected[i]))
+ writer1.write(expected[i]);
+ }
+
+ CharArrayWriter writer2 = new CharArrayWriter();
+ char[] actual = actualContents.toCharArray();
+ for (int i = 0; i < actual.length; i++) {
+ if (!Character.isWhitespace(actual[i]))
+ writer2.write(actual[i]);
+ }
+ writer1.close();
+ writer2.close();
+
+ char[] expectedCompacted = writer1.toCharArray();
+ char[] actualCompacted = writer2.toCharArray();
+ assertEquals("significant character differs", new String(expectedCompacted), new String(actualCompacted));
+
+ return true;
+ }
+ private void resetPreferencesToDefault() {
+ Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
+ preferences.setToDefault(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS);
+ preferences.setToDefault(HTMLCorePreferenceNames.LINE_WIDTH);
+ preferences.setToDefault(HTMLCorePreferenceNames.INDENTATION_CHAR);
+ preferences.setToDefault(HTMLCorePreferenceNames.INDENTATION_SIZE);
+ preferences.setToDefault(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES);
+ }
+
+ public void testFormatBug102495() throws UnsupportedEncodingException, IOException, CoreException {
+ String beforePath = "/" + PROJECT_NAME + "/WebContent/formatbug102495.jsp";
+ String afterPath = "/" + PROJECT_NAME + "/WebContent/formatbug102495-fmt.jsp";
+ formatAndAssertEquals(beforePath, afterPath, true);
+ }
+
+ public void testFormatBug102495_1() throws UnsupportedEncodingException, IOException, CoreException {
+ String beforePath = "/" + PROJECT_NAME + "/WebContent/formatbug102495_1.jsp";
+ String afterPath = "/" + PROJECT_NAME + "/WebContent/formatbug102495_1-fmt.jsp";
+ formatAndAssertEquals(beforePath, afterPath, true);
+ }
+
+ public void testFormatBug102495_2() throws UnsupportedEncodingException, IOException, CoreException {
+ String beforePath = "/" + PROJECT_NAME + "/WebContent/formatbug102495_2.jsp";
+ String afterPath = "/" + PROJECT_NAME + "/WebContent/formatbug102495_2-fmt.jsp";
+ formatAndAssertEquals(beforePath, afterPath, true);
+ }
+
+ public void testFormatBug102495_3() throws UnsupportedEncodingException, IOException, CoreException {
+ String beforePath = "/" + PROJECT_NAME + "/WebContent/formatbug102495_3.jsp";
+ String afterPath = "/" + PROJECT_NAME + "/WebContent/formatbug102495_3-fmt.jsp";
+ formatAndAssertEquals(beforePath, afterPath, true);
+ }
+
+ public void testFormatBug102495_4() throws UnsupportedEncodingException, IOException, CoreException {
+ String beforePath = "/" + PROJECT_NAME + "/WebContent/formatbug102495_4.jsp";
+ String afterPath = "/" + PROJECT_NAME + "/WebContent/formatbug102495_4-fmt.jsp";
+ formatAndAssertEquals(beforePath, afterPath, true);
+ }
+
+ public void testFormatBug358545a() throws UnsupportedEncodingException, IOException, CoreException {
+ formatAndAssertSignificantEquals("/" + PROJECT_NAME + "/WebContent/formatbug358545.jsp", true);
+ }
+
+ public void testFormatBug358545b() throws UnsupportedEncodingException, IOException, CoreException {
+ formatAndAssertSignificantEquals("/" + PROJECT_NAME + "/WebContent/formatbug358545b.jsp", true);
+ }
+ public void testFormatBug384126() throws UnsupportedEncodingException, IOException, CoreException {
+ formatAndAssertSignificantEquals("/" + PROJECT_NAME + "/WebContent/formatBug384126.jsp", true);
+ }
+ public void testFormatBug383387() throws UnsupportedEncodingException, IOException, CoreException {
+ formatAndAssertSignificantEquals("/" + PROJECT_NAME + "/WebContent/formatBug383387.jsp", true);
+ }
+}
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/internal/TestProjectSetup.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/internal/TestProjectSetup.java
new file mode 100644
index 0000000..c2e9fb6
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/internal/TestProjectSetup.java
@@ -0,0 +1,355 @@
+/*******************************************************************************
+ * Copyright (c) 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.web.ui.tests.internal;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import junit.extensions.TestSetup;
+import junit.framework.Assert;
+import junit.framework.Test;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.texteditor.AbstractTextEditor;
+import org.eclipse.ui.texteditor.ITextEditor;
+import org.eclipse.wst.jsdt.internal.core.JavaModelManager;
+import org.eclipse.wst.jsdt.internal.core.search.indexing.IndexManager;
+
+
+/**
+ * <p>Sets up a test project.</p>
+ *
+ * @see org.eclipse.wst.jsdt.ui.tests.utils
+ * @see org.eclipse.wst.jsdt.web.ui.tests.internal
+ */
+public class TestProjectSetup extends TestSetup {
+ /** preference for ignoring WTP UI */
+ private static final String WTP_AUTOTEST_NONINTERACTIVE = "wtp.autotest.noninteractive";
+
+ /** The location of the testing files */
+ private static final String TESTING_RESOURCES_DIR = "testFiles";
+
+ /** previous value for hiding WTP UI */
+ private String fPreviousWTPAutoTestNonInteractivePropValue = null;
+
+ /** Name of the project the tests use */
+ private final String fProjectName;
+
+ /** The project that the tests use */
+ private IProject fProject;
+
+ /** The root directory to start with when looking for files */
+ private final String fRootDirictory;
+
+ /**
+ * <p>
+ * <code>true</code> if should delete project on tear down,
+ * <code>false</code> to leave it for other tests to use.
+ * </p>
+ */
+ private final boolean fDeleteOnTearDown;
+
+ /**
+ * Used to keep track of the already open editors so that the tests don't go through
+ * the trouble of opening the same editors over and over again
+ */
+ private Map fFileToEditorMap = new HashMap();
+
+ /**
+ * <p>
+ * <b>NOTE:</b> will not delete the project on tear down so other tests can use it.
+ * </p>
+ *
+ * @param test
+ * do setup for the given test
+ * @param projectName
+ * name of the project to set up
+ * @param rootDirectory
+ * path to the root directory to look for all files under, or <code>null</code> if
+ * look directly under project root
+ */
+ public TestProjectSetup(Test test, String projectName, String rootDirectory) {
+ super(test);
+
+ this.fProjectName = projectName;
+ this.fRootDirictory = rootDirectory;
+ this.fDeleteOnTearDown = false;
+ }
+
+ /**
+ * @param test
+ * do setup for the given test
+ * @param projectName
+ * name of the project to set up
+ * @param rootDirectory
+ * path to the root directory to look for all files under, or <code>null</code> if
+ * look directly under project root
+ * @param deleteOnTearDown
+ * <code>true</code> if should delete project on tear down, <code>false</code> to
+ * leave it for other tests to use.
+ */
+ public TestProjectSetup(Test test, String projectName, String rootDirectory, boolean deleteOnTearDown) {
+ super(test);
+
+ this.fProjectName = projectName;
+ this.fRootDirictory = rootDirectory;
+ this.fDeleteOnTearDown = deleteOnTearDown;
+ }
+
+ /**
+ * @return {@link IProject} that was setup
+ */
+ public IProject getProject() {
+ return this.fProject;
+ }
+
+ /**
+ * <p>
+ * Given a <code>file</code> get an editor for it. If an editor has already been retrieved for
+ * the given <code>file</code> then return the same already open editor.
+ * </p>
+ *
+ * <p>
+ * When opening the editor it will also standardized the line endings to <code>\n</code>
+ * </p>
+ *
+ * @param file
+ * open and return an editor for this
+ * @return <code>StructuredTextEditor</code> opened from the given <code>file</code>
+ */
+ public AbstractTextEditor getEditor(IFile file) {
+ AbstractTextEditor editor = (AbstractTextEditor) fFileToEditorMap.get(file);
+
+ if(editor == null) {
+ try {
+ IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ IEditorPart editorPart = null;
+ if(file.getFileExtension().equals("js")) {
+ editorPart = IDE.openEditor(page, file, true, true);
+ } else if(file.getFileExtension().equals("html")) {
+ editorPart = IDE.openEditor(page, file, "org.eclipse.wst.html.core.htmlsource.source", true);
+ }
+
+ if(editorPart instanceof AbstractTextEditor) {
+ editor = (AbstractTextEditor) editorPart;
+ } else {
+ Assert.fail("Unable to open structured text editor");
+ }
+
+ if(editor != null) {
+ standardizeLineEndings(editor);
+ fFileToEditorMap.put(file, editor);
+ } else {
+ Assert.fail("Could not open editor for " + file);
+ }
+ } catch(Exception e) {
+ Assert.fail("Could not open editor for " + file + " exception: " + e.getMessage());
+ }
+ }
+
+ return editor;
+ }
+
+ /**
+ * <p>
+ * Given a file path in the test project attempts to get an <code>IFile</code> for it, if the
+ * file doesn't exist the test fails.
+ * </p>
+ *
+ * @param path
+ * the name of the file to get
+ *
+ * @return the {@link IFile} associated with the given file path
+ */
+ public IFile getFile(String path) {
+ IFile file = null;
+
+ if(this.fRootDirictory != null) {
+ file = this.fProject.getFile(this.fRootDirictory + IPath.SEPARATOR + path);
+ } else {
+ file = this.fProject.getFile(path);
+ }
+
+ Assert.assertTrue("Test file " + file + " can not be found", file.exists());
+
+ return file;
+ }
+
+ /**
+ * <p>
+ * Edits the file given by the fileName. The number of characters indicated by length are
+ * replaced by the given text beginning at the character located at the given line number and
+ * the line character offset.
+ * </p>
+ *
+ * @param fileName
+ * @param lineNum
+ * @param lineRelativeCharOffset
+ * @param length
+ * @param text
+ * @throws Exception
+ */
+ public void editFile(String fileName, int lineNum, int lineRelativeCharOffset, int length, String text)
+ throws Exception {
+
+ IFile file = this.getFile(fileName);
+ AbstractTextEditor editor = this.getEditor(file);
+ IDocument doc = editor.getDocumentProvider().getDocument(editor.getEditorInput());
+
+ int offset = doc.getLineOffset(lineNum) + lineRelativeCharOffset;
+ doc.replace(offset, length, text);
+
+ waitForIndexManager();
+ }
+
+ /**
+ * <p>
+ * This is run Once while the test is being setUp for all the tests.
+ * </p>
+ * <p>
+ * Designed to be overridden by content assist test suite Implementers to do additional test
+ * setup.
+ * </p>
+ *
+ */
+ public void additionalSetUp() throws Exception {
+ // default do nothing
+ }
+
+ /**
+ * <p>
+ * This is run once before all of the tests
+ * </p>
+ *
+ * @see junit.extensions.TestSetup#setUp()
+ */
+ public final void setUp() throws Exception {
+ // setup properties
+ String noninteractive = System.getProperty(WTP_AUTOTEST_NONINTERACTIVE);
+ if(noninteractive != null) {
+ fPreviousWTPAutoTestNonInteractivePropValue = noninteractive;
+ } else {
+ fPreviousWTPAutoTestNonInteractivePropValue = "false";
+ }
+ System.setProperty(WTP_AUTOTEST_NONINTERACTIVE, "true");
+
+ // get project
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ fProject = root.getProject(this.fProjectName);
+
+ // setup project if it is not yet setup
+ if(fProject == null || !fProject.exists()) {
+ fProject = ProjectUtil.createProject(this.fProjectName, null, null);
+ ProjectUtil.copyBundleEntriesIntoWorkspace(TESTING_RESOURCES_DIR + IPath.SEPARATOR + this.fProjectName,
+ IPath.SEPARATOR + this.fProjectName);
+ }
+
+ // run any additional test setup
+ this.additionalSetUp();
+
+ // give the workspace a second to settle before running tests
+ Thread.sleep(1000);
+ waitForIndexManager();
+ }
+
+ /**
+ * <p>
+ * This is run once after all of the tests have been run
+ * </p>
+ *
+ * @see junit.extensions.TestSetup#tearDown()
+ */
+ public void tearDown() throws Exception {
+ // close out the editors
+ Iterator iter = fFileToEditorMap.values().iterator();
+ while(iter.hasNext()) {
+ AbstractTextEditor editor = (AbstractTextEditor) iter.next();
+ PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().closeEditor(editor, false);
+ }
+ this.fFileToEditorMap.clear();
+
+ //delete the project
+ if(this.fDeleteOnTearDown) {
+ this.fProject.delete(true, new NullProgressMonitor());
+ }
+
+ // restore properties
+ if(fPreviousWTPAutoTestNonInteractivePropValue != null) {
+ System.setProperty(WTP_AUTOTEST_NONINTERACTIVE, fPreviousWTPAutoTestNonInteractivePropValue);
+ }
+ }
+
+ /**
+ * <p>
+ * Line endings can be an issue when running tests on different OSs. This function standardizes
+ * the line endings to use <code>\n</code>
+ * </p>
+ *
+ * <p>
+ * It will get the text from the given editor, change the line endings, and then save the editor
+ * </p>
+ *
+ * @param editor
+ * standardize the line endings of the text presented in this
+ * editor.
+ */
+ private static void standardizeLineEndings(ITextEditor editor) {
+ IDocument doc = editor.getDocumentProvider().getDocument(editor.getEditorInput());
+ String contents = doc.get();
+ contents = StringUtils.replace(contents, "\r\n", "\n");
+ contents = StringUtils.replace(contents, "\r", "\n");
+ doc.set(contents);
+ }
+
+ /**
+ * <p>
+ * Wait for the index manager with a time out of 10 seconds.
+ * </p>
+ */
+ private static void waitForIndexManager() {
+ waitForIndexManager(10000);
+ }
+
+ /**
+ * <p>
+ * Wait for the index manager for the given max time.
+ * </p>
+ *
+ * @param max
+ * maximum amount of time to wait for the index manager
+ */
+ private static void waitForIndexManager(long max) {
+ // Wait for the end of indexing
+ IndexManager indexManager = JavaModelManager.getJavaModelManager().getIndexManager();
+ long maxWaits = max / 10;
+ while (indexManager.awaitingJobsCount() > 0 && maxWaits-- > 0) {
+ try {
+ Thread.sleep(10);
+ }
+ catch (InterruptedException e) {
+ return;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/style/StyleTests.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/style/StyleTests.java
index f4a8eb2..91fd25b 100644
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/style/StyleTests.java
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/style/StyleTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2011 IBM Corporation and others.
+ * Copyright (c) 2009, 2012 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -27,6 +27,7 @@ import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
import org.eclipse.wst.jsdt.core.IJavaScriptProject;
@@ -78,15 +79,21 @@ public class StyleTests extends TestCase {
// create test file
IFile file = iProject.getFile(fileName);
file.create(new ByteArrayInputStream(contents.getBytes()), true, null);
- IEditorPart editor = IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(), file, "org.eclipse.wst.html.core.htmlsource.source");
- assertNotNull("editor failed to open", editor);
- Control control = (Control) editor.getAdapter(Control.class);
- assertNotNull("editor did not return a Control adapter", control);
- assertTrue("editor Control adapter is not a StyledText widget", control instanceof StyledText);
- int varIndex = contents.indexOf("var");
- StyleRange[] styleRanges = ((StyledText) control).getStyleRanges(varIndex, 3);
- assertTrue("no style range for 'var' keyword (this test may fail due to unpredictable timing issues with the test workbench)", styleRanges.length > 0);
- assertNotNull("no foreground color for 'var' keyword", styleRanges[0].foreground);
- assertNotSame("foreground color has same RGB as black", PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_BLACK).getRGB(), styleRanges[0].foreground.getRGB());
+ IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ IEditorPart editor = IDE.openEditor(activePage, file, "org.eclipse.wst.html.core.htmlsource.source");
+ try {
+ assertNotNull("editor failed to open", editor);
+ Control control = (Control) editor.getAdapter(Control.class);
+ assertNotNull("editor did not return a Control adapter", control);
+ assertTrue("editor Control adapter is not a StyledText widget", control instanceof StyledText);
+ int varIndex = contents.indexOf("var");
+ StyleRange[] styleRanges = ((StyledText) control).getStyleRanges(varIndex, 3);
+ assertTrue("no style range for 'var' keyword (this test may fail due to unpredictable timing issues with the test workbench)", styleRanges.length > 0);
+ assertNotNull("no foreground color for 'var' keyword", styleRanges[0].foreground);
+ assertNotSame("foreground color has same RGB as black", PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_BLACK).getRGB(), styleRanges[0].foreground.getRGB());
+ }
+ finally {
+ activePage.closeEditor(editor, false);
+ }
}
}
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/translation/RunCodeHandler.java b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/translation/RunCodeHandler.java
index bbb8177..dbd5604 100644
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/translation/RunCodeHandler.java
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/src/org/eclipse/wst/jsdt/web/ui/tests/translation/RunCodeHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
+ * Copyright (c) 2008, 2012 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -191,7 +191,7 @@ public class RunCodeHandler extends AbstractHandler {
e.printStackTrace();
}
return false;
- };
+ }
}
protected void doExecute(IFile jsFile) {
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.project b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.project
new file mode 100644
index 0000000..40843e8
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>JSDTWebContentAssist</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/.jsdtscope
new file mode 100644
index 0000000..3a28de0
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/.jsdtscope
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="WebContent"/>
+ <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
+ <attributes>
+ <attribute name="hide" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
+ <classpathentry kind="output" path=""/>
+</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..30ddf73
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Wed Nov 16 13:07:13 EST 2011
+eclipse.preferences.version=1
+encoding//WebContent/GlobalFunctions.html=UTF-8
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.common.component b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..1bd35b0
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-modules id="moduleCoreId" project-version="1.5.0">
+ <wb-module deploy-name="JSDTWebContentAssist">
+ <wb-resource deploy-path="/" source-path="/WebContent"/>
+ <property name="context-root" value="JSDTWebContentAssist"/>
+ </wb-module>
+</project-modules>
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.common.project.facet.core.xml b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000..f48d661
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+ <runtime name="Web Preview Server Runtime"/>
+ <fixed facet="wst.jsdt.web"/>
+ <fixed facet="wst.web"/>
+ <installed facet="wst.web" version="1.0"/>
+ <installed facet="wst.jsdt.web" version="1.0"/>
+</faceted-project>
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.jsdt.ui.superType.container b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.jsdt.ui.superType.container
new file mode 100644
index 0000000..3bd5d0a
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.jsdt.ui.superType.container
@@ -0,0 +1 @@
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.jsdt.ui.superType.name b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.jsdt.ui.superType.name
new file mode 100644
index 0000000..05bd71b
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/.settings/org.eclipse.wst.jsdt.ui.superType.name
@@ -0,0 +1 @@
+Window \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/BrowserLibrary.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/BrowserLibrary.html
new file mode 100644
index 0000000..a55efc8
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/BrowserLibrary.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+document.g
+
+al
+
+doc
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ClassTest1.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ClassTest1.js
new file mode 100644
index 0000000..f76e1ab
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ClassTest1.js
@@ -0,0 +1,8 @@
+function MyClass1(a) {
+ this.a = a;
+}
+
+var MyClass2 = function() {};
+MyClass2.prototype.meth = function() {};
+
+new MyCl
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ClassTest2.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ClassTest2.html
new file mode 100644
index 0000000..25b86b0
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ClassTest2.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+new MyCl
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ClassTest3.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ClassTest3.js
new file mode 100644
index 0000000..bc26399
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ClassTest3.js
@@ -0,0 +1,14 @@
+function MyClass7(a) {
+ this.a = a;
+}
+
+var o = {
+ a: new z,
+ b: 42
+};
+
+var q = {
+ a: new MyC,
+ b: 42
+};
+
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ConstructorCamelCase.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ConstructorCamelCase.html
new file mode 100644
index 0000000..3c2874e
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ConstructorCamelCase.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+new iG
+
+new iGS
+
+new iGSF
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ConstructorCamelCase.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ConstructorCamelCase.js
new file mode 100644
index 0000000..b3d1059
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ConstructorCamelCase.js
@@ -0,0 +1,27 @@
+var iGotMessage = function iGotMessage(param1) {
+ this.param1=param1;
+};
+
+var mail = {
+ inbox: {
+ IGotStared : {}
+ },
+ spam : {}
+};
+
+mail.iGotSpam = function(a, b) {};
+mail.iGotSpam.prototype = new Object();
+
+mail.inbox.iGotStarredFun = function(param1) {};
+mail.inbox.iGotStarredFun.prototype = new Object();
+
+new iG
+
+new iGS
+
+new iGSF
+
+
+iGSF
+
+m \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Crazy.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Crazy.html
new file mode 100644
index 0000000..3c58310
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Crazy.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+var obj = new Crazy();
+
+obj.
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Crazy.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Crazy.js
new file mode 100644
index 0000000..a8e95dc
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Crazy.js
@@ -0,0 +1,11 @@
+function Crazy() {
+ this.foo = "foo";
+}
+
+/**
+ *
+ * @param {Number} param1
+ */
+Crazy.prototype.myFunc1 = function(param1) {
+ return param1;
+}; \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GLobalObjectLiterals.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GLobalObjectLiterals.js
new file mode 100644
index 0000000..b00b679
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GLobalObjectLiterals.js
@@ -0,0 +1,13 @@
+org = {};
+org.eclipse = {};
+org.eclipse2 = {};
+org.eclipse.fun = function(){};
+org.eclipse.crazy = function() {};
+
+
+
+o
+
+org.e
+
+org.eclipse.z \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Global.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Global.html
new file mode 100644
index 0000000..22f32d5
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Global.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+g
+
+globalV
+
+gVN
+
+gV
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Global.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Global.js
new file mode 100644
index 0000000..4dea074
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Global.js
@@ -0,0 +1,18 @@
+var globalVar;
+var globalVarNum = 42;
+var globalVarString = "test";
+var globalVarObject = {};
+
+global;
+globalNum = 42;
+globalString = "test";
+
+g
+
+globalV
+
+g
+
+gVN
+
+gV
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalFunctions.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalFunctions.html
new file mode 100644
index 0000000..52f163b
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalFunctions.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+f
+
+func
+
+funcT
+
+fT
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalFunctions.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalFunctions.js
new file mode 100644
index 0000000..db84e80
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalFunctions.js
@@ -0,0 +1,65 @@
+function funcOne() {
+
+}
+
+function funcTwo() {
+ return "";
+}
+
+function funcThree(paramOne) {
+
+}
+
+function funcFour(paramOne, paramTwo) {
+ return paramOne * paramTwo;
+}
+
+/**
+ *
+ * @param {Number} paramOne
+ * @param {String} paramTwo
+ * @returns {String}
+ */
+function funcFive(paramOne, paramTwo) {
+ return "hello";
+}
+
+/**
+ *
+ * @param paramOne
+ * @param {String} paramTwo
+ * @returns {Number}
+ */
+function funcSix(paramOne, paramTwo) {
+ return 7;
+}
+
+/**
+ *
+ * @param {String} paramOne
+ * @param paramTwo
+ * @returns {Number}
+ */
+function funcSeven(paramOne, paramTwo) {
+ return 7;
+}
+
+var funcEight = function(paramOne) {
+ return "";
+};
+
+
+funcNine = function(paramOne) {
+ return 42;
+};
+
+fT
+
+f
+
+func
+
+funcT
+
+
+
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalObjectLiterals.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalObjectLiterals.html
new file mode 100644
index 0000000..7a54807
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalObjectLiterals.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+o
+
+org.e
+
+org.eclipse.z
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalVarsDefinedInClosure.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalVarsDefinedInClosure.html
new file mode 100644
index 0000000..e1c38d8
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalVarsDefinedInClosure.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+
+clo
+
+closure.n
+
+closure2.b
+
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalVarsDefinedInClosure.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalVarsDefinedInClosure.js
new file mode 100644
index 0000000..c37d199
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/GlobalVarsDefinedInClosure.js
@@ -0,0 +1,19 @@
+(function() {
+ closure = {
+ nifty : 42
+ };
+
+ this.closure2 = {
+ burg : "foo"
+ };
+
+
+})();
+
+
+
+clo
+
+closure.n
+
+closure2.b \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerFunctions.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerFunctions.html
new file mode 100644
index 0000000..2a83758
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerFunctions.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+funcT
+
+fT
+
+f
+
+fE
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerFunctions.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerFunctions.js
new file mode 100644
index 0000000..4b37106
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerFunctions.js
@@ -0,0 +1,24 @@
+function funcTen( paramEleven , paramTwelve ) {
+ function funcTenInner(newParam111,newParam222){
+ return "";
+ };
+
+ var funcTenInner1 = function(param1) {
+
+ };
+
+ funcTenInner2= function(param1,param2) {
+
+ };
+ funcT
+ fT
+
+};
+
+
+
+funcT
+
+fT
+
+fE \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerOuter.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerOuter.html
new file mode 100644
index 0000000..fdb9916
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerOuter.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+oF
+
+i
+
+eF
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerOuter.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerOuter.js
new file mode 100644
index 0000000..79998f8
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/InnerOuter.js
@@ -0,0 +1,22 @@
+function outerFunc()
+{
+ // innerFunc and outerFunc
+ function innerFunc()
+ {
+ // all but localInnerFunc
+
+ function insideInnerFunc()
+ {
+ var localInnerFunc = function(param1) {
+
+ };
+ //all the functions
+
+ }
+ // all but localInnerFunc
+
+ }
+
+}
+
+ // only outerFunc \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClasses.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClasses.html
new file mode 100644
index 0000000..8d582d8
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClasses.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+new Aw
+
+new ba
+
+new bar.C
+
+new bar.fo
+
+new bar.foo.C
+
+new C
+
+new bar.
+
+z //needed because the bar. causes compile issues
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClasses.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClasses.js
new file mode 100644
index 0000000..575a2d6
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClasses.js
@@ -0,0 +1,34 @@
+function Awesome(param1, param2) {
+ this.param1 = param1;
+ this.param2 = param2;
+};
+
+var bar = {
+ foo: {},
+ foobla : {},
+ neto : {}
+};
+bar.Class1 = function(a, b) {};
+bar.Class1.prototype = new Object();
+bar.Class2 = function(c, d, e) {};
+bar.Class2.prototype = new Object();
+bar.foo.Class3 = function(param1, param2, param3, param4) {};
+bar.foo.Class3.prototype = new Object();
+
+new
+
+new Aw
+
+new ba
+
+new bar.C
+
+new bar.fo
+
+new bar.foo.C
+
+new C
+
+new bar.
+
+z //needed because the bar. causes compile issues \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClassesII.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClassesII.html
new file mode 100644
index 0000000..d1b4260
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClassesII.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+ID
+
+CX
+
+IDC
+
+Comp
+
+Ins
+
+z //needed because the bar. causes compile issues
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClassesII.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClassesII.js
new file mode 100644
index 0000000..6b36fc1
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSClassesII.js
@@ -0,0 +1,38 @@
+var Computer = {
+ proc: {
+
+ },
+ memory : {}
+};
+
+var Installed = {};
+
+Computer.proc.IntelDualCore1=function(param1,param2) {
+ this.foo1 = 42;
+};
+Computer.proc.IntelDualCore2=function(param3,param4) {
+ this.foo2 = 42;
+};
+Computer.proc.IntelQuadCore = function(param5) {
+ this.foo3 = 42;
+};
+Computer.proc.CeleronXSeries = function() {
+ this.foo = 42;
+};
+
+Installed.CorelXSoftware = function() {
+ this.foo = 42;
+};
+
+
+ID
+
+CX
+
+IDC
+
+Comp
+
+Ins
+
+z //needed because the bar. causes compile issues \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSObjectModel.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSObjectModel.html
new file mode 100644
index 0000000..e97256a
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSObjectModel.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+historyObject. ;
+
+windowObject. ;
+
+nodeObject. ;
+
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSObjectModel.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSObjectModel.js
new file mode 100644
index 0000000..6f75433
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/JSObjectModel.js
@@ -0,0 +1,13 @@
+
+
+var windowObject = new Window();
+
+var nodeObject = new Node();
+nodeObject.
+var historyObject = new History();
+
+windowObject. ;
+
+//
+
+historyObject. ; \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/LocalVariableDefinedInFunctionInObjectLiteral.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/LocalVariableDefinedInFunctionInObjectLiteral.html
new file mode 100644
index 0000000..500031a
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/LocalVariableDefinedInFunctionInObjectLiteral.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+nin
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/LocalVariableDefinedInFunctionInObjectLiteral.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/LocalVariableDefinedInFunctionInObjectLiteral.js
new file mode 100644
index 0000000..4cd4466
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/LocalVariableDefinedInFunctionInObjectLiteral.js
@@ -0,0 +1,8 @@
+__objLiteral = {
+ foo : function() {
+ var ninjaLocal = 42;
+ nin
+ }
+}
+
+nin \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/NamedFunctionAssignedToVariables.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/NamedFunctionAssignedToVariables.html
new file mode 100644
index 0000000..0f64e4e
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/NamedFunctionAssignedToVariables.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+f
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/NamedFunctionAssignedToVariables.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/NamedFunctionAssignedToVariables.js
new file mode 100644
index 0000000..5270e81
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/NamedFunctionAssignedToVariables.js
@@ -0,0 +1,11 @@
+var foo1 = function foo1Ignored(param2) {
+
+};
+
+foo2 = function foo2Ignored(param3, param4) {
+
+}
+
+
+
+f \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ProposalInfo.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ProposalInfo.html
new file mode 100644
index 0000000..a377046
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ProposalInfo.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+
+Hel
+
+nod
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ProposalInfo.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ProposalInfo.js
new file mode 100644
index 0000000..454bafd
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ProposalInfo.js
@@ -0,0 +1,25 @@
+/**
+ * Hello World
+ */
+function HelloWorld() {
+
+}
+
+/**
+ * @param State
+ * @param City
+ */
+function HelloAmerica(State, City) {
+
+}
+
+Hel
+
+/**
+ * nodeOne = test
+ */
+var nodeOne = "test";
+
+nod
+
+
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ReferenceInMemberAndStaticFunctions.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ReferenceInMemberAndStaticFunctions.html
new file mode 100644
index 0000000..26f9c97
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ReferenceInMemberAndStaticFunctions.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+new fu
+
+new Par
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ReferenceInMemberAndStaticFunctions.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ReferenceInMemberAndStaticFunctions.js
new file mode 100644
index 0000000..a5bf9e5
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/ReferenceInMemberAndStaticFunctions.js
@@ -0,0 +1,12 @@
+ParentType0 = function(a) {};
+ParentType0.prototype = new Object();
+ParentType0.prototype.func1 = function(a) {
+ this.a = a;
+};
+ParentType0.func2 = function(b) {
+ this.b = b;
+};
+
+new fu
+
+new Par \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/SingleLineScriptTag.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/SingleLineScriptTag.html
new file mode 100644
index 0000000..2d7d0a6
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/SingleLineScriptTag.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">var d = new D</script>
+<script type="text/javascript">var d = new D </script>
+<script type="text/javascript"></script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/StaticTests.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/StaticTests.html
new file mode 100644
index 0000000..7d6bfc5
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/StaticTests.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+Server.gSIP;
+
+yDC ;
+
+yahooDotCom.cIP;
+
+yahooDotCom.g ;
+
+Server.s ;
+
+// End of Code
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/StaticTests.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/StaticTests.js
new file mode 100644
index 0000000..2a42a96
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/StaticTests.js
@@ -0,0 +1,59 @@
+function Server(param1)
+{
+ this.port=param1;
+}
+
+// static variables
+
+Server.getServerIP = function() {
+ return Server.serverIP;
+};
+Server.serverIP = '123.23.23.23';
+
+// instance variables
+
+Server.prototype.getClientPort = function() {
+ return this.port;
+};
+Server.prototype.clientIP = '';
+Server.prototype.getClientIP = function() {
+ return this.clientIP;
+};
+
+// instance of Server
+
+var yahooDotCom = new Server();
+
+// Begin tests
+
+Server.gSIP ;
+
+yDC ;
+
+yahooDotCom.cIP;
+
+yahooDotCom.g ;
+
+Server.s ;
+
+// Peace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Template.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Template.html
new file mode 100644
index 0000000..472f7af
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Template.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">func</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Test.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Test.html
new file mode 100644
index 0000000..c012bac
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Test.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>GlobalFunctions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">
+
+
+new tes
+
+</script>
+
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Test.js b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Test.js
new file mode 100644
index 0000000..1e7f03f
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/JSDTWebContentAssist/WebContent/Test.js
@@ -0,0 +1,8 @@
+var test = {};
+test['Foo'] = function(x, y, z) {
+ this.fX = x;
+ this.fY = y;
+ this.fZ = z;
+};
+
+new tes \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/formatting/test20-fmt.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/formatting/test20-fmt.jsp
new file mode 100644
index 0000000..70248e0
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/formatting/test20-fmt.jsp
@@ -0,0 +1,20 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<%@ page import="com.google.appengine.api.users.User"%>
+<%@ page import="com.google.appengine.api.users.UserService"%>
+<%@ page import="com.google.appengine.api.users.UserServiceFactory"%>
+<%
+ UserService userService = UserServiceFactory.getUserService();
+ User user = userService.getCurrentUser();
+%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<script type="text/javascript"
+ src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() {
+ openid.init('openid_identifier');
+ });
+</script>
+</head> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/formatting/test20.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/formatting/test20.jsp
new file mode 100644
index 0000000..793fea1
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/formatting/test20.jsp
@@ -0,0 +1,18 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
+<%@ page import="com.google.appengine.api.users.User"%>
+<%@ page import="com.google.appengine.api.users.UserService"%>
+<%@ page import="com.google.appengine.api.users.UserServiceFactory"%>
+<%
+ UserService userService = UserServiceFactory.getUserService();
+ User user = userService.getCurrentUser();
+%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() {
+ openid.init('openid_identifier');
+ });
+</script>
+</head>
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/.project b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/.project
new file mode 100644
index 0000000..7b17698
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>jsdtjspformatting</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5e94951
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/WEB-INF/lib/.keepme b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/WEB-INF/lib/.keepme
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/WEB-INF/lib/.keepme
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/WEB-INF/web.xml b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/WEB-INF/web.xml
new file mode 100644
index 0000000..6497626
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/WEB-INF/web.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+ <display-name>jsdtjspformatting</display-name>
+ <welcome-file-list>
+ <welcome-file>index.html</welcome-file>
+ <welcome-file>index.htm</welcome-file>
+ <welcome-file>index.jsp</welcome-file>
+ <welcome-file>default.html</welcome-file>
+ <welcome-file>default.htm</welcome-file>
+ <welcome-file>default.jsp</welcome-file>
+ </welcome-file-list>
+</web-app>
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495-fmt.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495-fmt.jsp
new file mode 100644
index 0000000..8bb8b72
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495-fmt.jsp
@@ -0,0 +1,37 @@
+<%-- jsp declaration for String pal should stay on same line. All others should move to new line --%>
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%><%!String pal = "friend";%>
+<%!String message = "friend";%>
+<%!String buddy = "friend";%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+ <%-- jsp expression must be followed directly by ! because no whitespace exists between --%>
+ Welcome to WTP,
+ <%=message%>!
+ <p>
+ Welcome to WTP,
+ <%=pal%>!
+ </p>
+ <%-- jsp expression should be treated like any other attribute --%>
+ <table <%="align='left'"%>>
+ <tr>
+ <%-- no whitespace exists before/after jsp tag so keep it that way --%>
+ <th>Column<jsp:setProperty name="myname" property="myproperty" />Heading
+ </th>
+ <%-- whitespace exists before/after jsp tag so newlines are okay --%>
+ <th>Column <jsp:setProperty name="myname" property="myproperty" />
+ Heading
+ </th>
+ </tr>
+ <tr>
+ <td>Row 1: Col 1</td>
+ <td>Row 1: Col 2</td>
+ </tr>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495.jsp
new file mode 100644
index 0000000..74bf0a6
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495.jsp
@@ -0,0 +1,29 @@
+<%-- jsp declaration for String pal should stay on same line. All others should move to new line --%>
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%><%! String pal="friend"; %>
+<%! String message="friend"; %> <%! String buddy="friend"; %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+<%-- jsp expression must be followed directly by ! because no whitespace exists between --%>
+Welcome to WTP, <%=message%>!
+<p>Welcome to WTP, <%=pal%>!</p>
+<%-- jsp expression should be treated like any other attribute --%>
+<table <%="align='left'"%>>
+ <tr>
+ <%-- no whitespace exists before/after jsp tag so keep it that way --%>
+ <th>Column<jsp:setProperty name="myname" property="myproperty"/>Heading</th>
+ <%-- whitespace exists before/after jsp tag so newlines are okay --%>
+ <th>Column <jsp:setProperty name="myname" property="myproperty"/> Heading</th>
+ </tr>
+ <tr>
+ <td>Row 1: Col 1</td>
+ <td>Row 1: Col 2</td>
+ </tr>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_1-fmt.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_1-fmt.jsp
new file mode 100644
index 0000000..3b57eeb
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_1-fmt.jsp
@@ -0,0 +1,14 @@
+<%-- jsp declaration for String pal should stay on same line. All others should move to new line --%>
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%><%!String pal = "friend";%>
+<%!String message = "friend";%>
+<%!String buddy = "friend";%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_1.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_1.jsp
new file mode 100644
index 0000000..2554390
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_1.jsp
@@ -0,0 +1,13 @@
+<%-- jsp declaration for String pal should stay on same line. All others should move to new line --%>
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%><%! String pal="friend"; %>
+<%! String message="friend"; %> <%! String buddy="friend"; %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_2-fmt.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_2-fmt.jsp
new file mode 100644
index 0000000..1467120
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_2-fmt.jsp
@@ -0,0 +1,20 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<%!String pal = "friend";%>
+<%!String message = "friend";%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+ <%-- jsp expression must be followed directly by ! because no whitespace exists between --%>
+ Welcome to WTP,
+ <%=message%>!
+ <p>
+ Welcome to WTP,
+ <%=pal%>!
+ </p>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_2.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_2.jsp
new file mode 100644
index 0000000..692e1e5
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_2.jsp
@@ -0,0 +1,16 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<%! String pal="friend"; %>
+<%! String message="friend"; %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+<%-- jsp expression must be followed directly by ! because no whitespace exists between --%>
+Welcome to WTP, <%=message%>!
+<p>Welcome to WTP, <%=pal%>!</p>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_3-fmt.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_3-fmt.jsp
new file mode 100644
index 0000000..79c70a6
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_3-fmt.jsp
@@ -0,0 +1,14 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+ <%-- jsp expression should be treated like any other attribute --%>
+ <table <%="align='left'"%>>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_3.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_3.jsp
new file mode 100644
index 0000000..e185c3e
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_3.jsp
@@ -0,0 +1,14 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+<%-- jsp expression should be treated like any other attribute --%>
+<table <%="align='left'"%>>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_4-fmt.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_4-fmt.jsp
new file mode 100644
index 0000000..4fd9c21
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_4-fmt.jsp
@@ -0,0 +1,26 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+ <table>
+ <tr>
+ <%-- no whitespace exists before/after jsp tag so keep it that way --%>
+ <th>Column<jsp:setProperty name="myname" property="myproperty" />Heading
+ </th>
+ <%-- whitespace exists before/after jsp tag so newlines are okay --%>
+ <th>Column <jsp:setProperty name="myname" property="myproperty" />
+ Heading
+ </th>
+ </tr>
+ <tr>
+ <td>Row 1: Col 1</td>
+ <td>Row 1: Col 2</td>
+ </tr>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_4.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_4.jsp
new file mode 100644
index 0000000..87859db
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug102495_4.jsp
@@ -0,0 +1,23 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+<table>
+ <tr>
+ <%-- no whitespace exists before/after jsp tag so keep it that way --%>
+ <th>Column<jsp:setProperty name="myname" property="myproperty"/>Heading</th>
+ <%-- whitespace exists before/after jsp tag so newlines are okay --%>
+ <th>Column <jsp:setProperty name="myname" property="myproperty"/> Heading</th>
+ </tr>
+ <tr>
+ <td>Row 1: Col 1</td>
+ <td>Row 1: Col 2</td>
+ </tr>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug358545.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug358545.jsp
new file mode 100644
index 0000000..9c804b5
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug358545.jsp
@@ -0,0 +1,92 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" import="com.eprice.data.*,
+ com.eprice.data.PricingPlanAttribute.AttributeSourceEnum,
+ com.eprice.data.Currency,
+ com.epriceadmin.form.*,
+ java.util.Iterator,
+ com.epriceadmin.service.PriceBookService,
+ com.epriceadmin.data.*,
+ com.eprice.data.pricebook.*,
+ com.eprice.importsexports.data.AttributeValue,
+ java.util.*,
+ java.text.*"
+%>
+<html>
+<head>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ taglib prefix="eprice" uri="WEB-INF/tld/eprice.tld"%>
+<jsp:useBean id="AdminSession" scope="session" type="com.epriceadmin.data.AdminSession" />
+<c:set var="activeForm" value="${AdminSession.activeForm}" scope="session" />
+<script type="text/javascript">
+ var oldValue = "";
+
+ function copyPrices(prevValue) {
+ var pricetxts = document.forms[0].priceField;
+ if (isNaN(pricetxts[0].value)) {
+ alert('Cannot copy non-numeric prices');
+ return;
+ }
+ for ( var i = 0; i < pricetxts.length; i++) {
+ if (!isNaN(pricetxts[0].value)) {
+ pricetxts[i].value = pricetxts[0].value
+ oldValue = prevValue
+ }
+ }
+
+ }
+
+
+ function controlForm() {
+<% if( priceBooksEditIndividualForm.getShowAttributes() != null ) { %>
+ document.getElementById("savePrices").className = "buttonDisabled";
+ document.getElementById("savePrices").mouseover.className = "buttonDisabled";
+<% } %>
+ }
+
+ function MM_findObj(n, d) { //v4.01
+ var p, i, x;
+ if (!d)
+ d = document;
+ if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
+ d = parent.frames[n.substring(p + 1)].document;
+ n = n.substring(0, p);
+ }
+ if (!(x = d[n]) && d.all)
+ x = d.all[n];
+ for (i = 0; !x && i < d.forms.length; i++)
+ x = d.forms[i][n];
+ for (i = 0; !x && d.layers && i < d.layers.length; i++)
+ x = MM_findObj(n, d.layers[i].document);
+ if (!x && d.getElementById)
+ x = d.getElementById(n);
+ return x;
+ }
+
+ function MM_showHideLayers() { //v6.0
+ var i, p, v, obj, args = MM_showHideLayers.arguments;
+ for (i = 0; i < (args.length - 2); i += 3)
+ if ((obj = MM_findObj(args[i])) != null) {
+ v = args[i + 2];
+ if (obj.style) {
+ obj = obj.style;
+ v = (v == 'show') ? 'visible' : (v == 'hide') ? 'hidden'
+ : v;
+ }
+ obj.visibility = v;
+ }
+ }
+ function verifyLocalAcessPLI() {
+<% if( request.getAttribute( "LOCAL_DIVERSE_ACESS_PLI" ) != null ) {%>
+ MM_showHideLayers('restrictLocalAccessPLIPopup', '', 'show');
+<% }%>
+ }
+</script>
+<title>ePrice Administration - Price Books - Edit Individual Prices</title>
+</head>
+<body onkeydown="selectSave()" onload="verifyLocalAcessPLI();">
+
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug358545b.jsp b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug358545b.jsp
new file mode 100644
index 0000000..640c934
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/WebContent/formatbug358545b.jsp
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<script type="text/javascript">
+
+ function verifyLocalAcessPLI() {
+<% if( request.getAttribute( "LOCAL_DIVERSE_ACESS_PLI" ) != null ) {%>
+ MM_showHideLayers('restrictLocalAccessPLIPopup', '', 'show');
+<% }%>
+ }
+</script>
+<title>ePrice Administration - Price Books - Edit Individual Prices</title>
+</head>
+<body onkeydown="selectSave()" onload="verifyLocalAcessPLI();">
+
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/src/.keepme b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/src/.keepme
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/jsdtjspformatting/src/.keepme
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test16-fmt.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test16-fmt.html
deleted file mode 100644
index cb2fe9b..0000000
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test16-fmt.html
+++ /dev/null
@@ -1,351 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<title>index</title>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-</head>
-<body>
- <script type="text/javascript">
- function boo() {
- }
-
- boo();
-
-
- define("ibm/PaperSheet", [ "dojo", "dijit", "dojo/_base/array", "dijit/_WidgetBase",
- "dojox/mobile/Container", "dojo/NodeList-traverse" ], function(dojo, dijit, array, _WidgetBase,
- Container) {
- return dojo.declare("ibm.PaperSheet", [ dijit._WidgetBase,
- dojox.mobile.Container ], {
-
- _sideMargin: 15,
- _topMargin: 20,
- _bottomMargin: 40,
-
- _bottomLeft: null,
- _bottomRight: null,
- _bottomCenter: null,
- _leftSide: null,
- _rightSide: null,
-
- constructor : function() {
- },
-
- postMixInProperties: function(){
- },
-
- postCreate : function() {
- dojo.style(this.domNode, "marginLeft", "auto");
- dojo.style(this.domNode, "marginRight", "auto");
- dojo.style(this.domNode, "marginBottom", "50px");
- dojo.style(this.domNode, "position", "relative");
- dojo.style(this.domNode, "backgroundColor", "white");
- dojo.style(this.domNode, "backgroundImage", "-webkit-linear-gradient(bottom, #F0F0F0 40%, #FFFFFF 100%)");
-
- this._createSides();
- this._createBottom();
- },
-
- // react to the parent resizing
- resize : function() {
- array.forEach(this.getChildren(), function(child){
- if(child.resize) {
- child.resize();
- }
- });
-
- var domNodeHeight = dojo.position(this.domNode).h;
- var screenSize = dojox.mobile.getScreenSize();
- var containerWidth = screenSize.w - (2 * this._sideMargin);
-
- dojo.style(this.domNode, "width", containerWidth + "px");
- dojo.style(this.domNode, "top", this._topMargin + "px");
-
- var bottomWidth = Math.min(300, (containerWidth / 2) + 10);
-
- // bottom left
- dojo.style(this._bottomLeft, "width", bottomWidth + "px");
- dojo.style(this._bottomLeft, "height", "26px");
- dojo.style(this._bottomLeft, "left", "-10px");
- dojo.style(this._bottomLeft, "top", domNodeHeight + "px");
-
- // bottom right
- dojo.style(this._bottomRight, "height", "26px");
- dojo.style(this._bottomRight, "width", bottomWidth + "px");
- dojo.style(this._bottomRight, "position", "absolute");
- dojo.style(this._bottomRight, "left", ((containerWidth - bottomWidth) + 10) + "px");
- dojo.style(this._bottomRight, "top", domNodeHeight + "px");
-
- // bottom center
- dojo.style(this._bottomCenter, "height", "26px");
- dojo.style(this._bottomCenter, "top", domNodeHeight + "px");
- dojo.style(this._bottomCenter, "left", (bottomWidth - 10) + "px");
- dojo.style(this._bottomCenter, "width", (Math.max(0, containerWidth + 20 - (2 * bottomWidth))) + "px");
-
- // left
- dojo.style(this._leftSide, "width", "10px");
- dojo.style(this._leftSide, "height", domNodeHeight + "px");
- dojo.style(this._leftSide, "left", "-10px");
-
- // right
- dojo.style(this._rightSide, "width", "10px");
- dojo.style(this._rightSide, "height", domNodeHeight + "px");
- dojo.style(this._rightSide, "left", containerWidth + "px");
- },
-
- _createBottom : function() {
- this._bottomLeft = dojo.create("div", {}, this.domNode, "last");
- dojo.style(this._bottomLeft, "position", "absolute");
-
- // set background
- dojo.style(this._bottomLeft, "backgroundImage", "url('" + require.toUrl("ibm/images/left_bottom_shadow.png") + "')");
- dojo.style(this._bottomLeft, "backgroundPosition", "top left");
- dojo.style(this._bottomLeft, "backgroundRepeat", "no-repeat");
-
- this._bottomCenter = dojo.create("div", {}, this.domNode, "last");
- dojo.style(this._bottomCenter, "position", "absolute");
- dojo.style(this._bottomCenter, "backgroundImage", "url('" + require.toUrl("ibm/images/middle_bottom_shadow.png") + "')");
- dojo.style(this._bottomCenter, "backgroundPosition", "top");
- dojo.style(this._bottomCenter, "backgroundRepeat", "repeat-x");
-
- this._bottomRight = dojo.create("div", {}, this.domNode, "last");
- dojo.style(this._bottomRight, "position", "absolute");
-
- // set the shadow background
- dojo.style(this._bottomRight, "backgroundImage", "url('" + require.toUrl("ibm/images/right_bottom_shadow.png") + "')");
- dojo.style(this._bottomRight, "backgroundPosition", "top right");
- dojo.style(this._bottomRight, "backgroundRepeat", "no-repeat");
- },
-
- _createSides : function() {
- this._leftSide = dojo.create("div", {}, this.domNode, "first");
- dojo.style(this._leftSide, "position", "absolute");
- dojo.style(this._leftSide, "top", "0px");
-
- // set background
- dojo.style(this._leftSide, "backgroundImage", "url('" + require.toUrl("ibm/images/left_shadow.png") + "')");
- dojo.style(this._leftSide, "backgroundPosition", "top left");
-
- this._rightSide = dojo.create("div", {}, this.domNode, "last");
- dojo.style(this._rightSide, "position", "absolute");
- dojo.style(this._rightSide, "top", "0px");
-
- // set background
- dojo.style(this._rightSide, "backgroundImage", "url('" + require.toUrl("ibm/images/right_shadow.png") + "')");
- dojo.style(this._rightSide, "backgroundPosition", "top right");
- }
- });
-});
- <!--
- define("ibm/PaperSheet", [ "dojo", "dijit", "dojo/_base/array", "dijit/_WidgetBase",
- "dojox/mobile/Container", "dojo/NodeList-traverse" ], function(dojo, dijit, array, _WidgetBase,
- Container) {
- return dojo.declare("ibm.PaperSheet", [ dijit._WidgetBase,
- dojox.mobile.Container ], {
-
- _sideMargin: 15,
- _topMargin: 20,
- _bottomMargin: 40,
-
- _bottomLeft: null,
- _bottomRight: null,
- _bottomCenter: null,
- _leftSide: null,
- _rightSide: null,
-
- constructor : function() {
- },
-
- postMixInProperties: function(){
- },
-
- postCreate : function() {
- dojo.style(this.domNode, "marginLeft", "auto");
- dojo.style(this.domNode, "marginRight", "auto");
- dojo.style(this.domNode, "marginBottom", "50px");
- dojo.style(this.domNode, "position", "relative");
- dojo.style(this.domNode, "backgroundColor", "white");
- dojo.style(this.domNode, "backgroundImage", "-webkit-linear-gradient(bottom, #F0F0F0 40%, #FFFFFF 100%)");
-
- this._createSides();
- this._createBottom();
- },
-
- // react to the parent resizing
- resize : function() {
- array.forEach(this.getChildren(), function(child){
- if(child.resize) {
- child.resize();
- }
- });
-
- var domNodeHeight = dojo.position(this.domNode).h;
- var screenSize = dojox.mobile.getScreenSize();
- var containerWidth = screenSize.w - (2 * this._sideMargin);
-
- dojo.style(this.domNode, "width", containerWidth + "px");
- dojo.style(this.domNode, "top", this._topMargin + "px");
-
- var bottomWidth = Math.min(300, (containerWidth / 2) + 10);
-
- // bottom left
- dojo.style(this._bottomLeft, "width", bottomWidth + "px");
- dojo.style(this._bottomLeft, "height", "26px");
- dojo.style(this._bottomLeft, "left", "-10px");
- dojo.style(this._bottomLeft, "top", domNodeHeight + "px");
-
- // bottom right
- dojo.style(this._bottomRight, "height", "26px");
- dojo.style(this._bottomRight, "width", bottomWidth + "px");
- dojo.style(this._bottomRight, "position", "absolute");
- dojo.style(this._bottomRight, "left", ((containerWidth - bottomWidth) + 10) + "px");
- dojo.style(this._bottomRight, "top", domNodeHeight + "px");
-
- // bottom center
- dojo.style(this._bottomCenter, "height", "26px");
- dojo.style(this._bottomCenter, "top", domNodeHeight + "px");
- dojo.style(this._bottomCenter, "left", (bottomWidth - 10) + "px");
- dojo.style(this._bottomCenter, "width", (Math.max(0, containerWidth + 20 - (2 * bottomWidth))) + "px");
-
- // left
- dojo.style(this._leftSide, "width", "10px");
- dojo.style(this._leftSide, "height", domNodeHeight + "px");
- dojo.style(this._leftSide, "left", "-10px");
-
- // right
- dojo.style(this._rightSide, "width", "10px");
- dojo.style(this._rightSide, "height", domNodeHeight + "px");
- dojo.style(this._rightSide, "left", containerWidth + "px");
- },
-
- _createBottom : function() {
- this._bottomLeft = dojo.create("div", {}, this.domNode, "last");
- dojo.style(this._bottomLeft, "position", "absolute");
-
- // set background
- dojo.style(this._bottomLeft, "backgroundImage", "url('" + require.toUrl("ibm/images/left_bottom_shadow.png") + "')");
- dojo.style(this._bottomLeft, "backgroundPosition", "top left");
- dojo.style(this._bottomLeft, "backgroundRepeat", "no-repeat");
-
- this._bottomCenter = dojo.create("div", {}, this.domNode, "last");
- dojo.style(this._bottomCenter, "position", "absolute");
- dojo.style(this._bottomCenter, "backgroundImage", "url('" + require.toUrl("ibm/images/middle_bottom_shadow.png") + "')");
- dojo.style(this._bottomCenter, "backgroundPosition", "top");
- dojo.style(this._bottomCenter, "backgroundRepeat", "repeat-x");
-
- this._bottomRight = dojo.create("div", {}, this.domNode, "last");
- dojo.style(this._bottomRight, "position", "absolute");
-
- // set the shadow background
- dojo.style(this._bottomRight, "backgroundImage", "url('" + require.toUrl("ibm/images/right_bottom_shadow.png") + "')");
- dojo.style(this._bottomRight, "backgroundPosition", "top right");
- dojo.style(this._bottomRight, "backgroundRepeat", "no-repeat");
- },
-
- _createSides : function() {
- this._leftSide = dojo.create("div", {}, this.domNode, "first");
- dojo.style(this._leftSide, "position", "absolute");
- dojo.style(this._leftSide, "top", "0px");
-
- // set background
- dojo.style(this._leftSide, "backgroundImage", "url('" + require.toUrl("ibm/images/left_shadow.png") + "')");
- dojo.style(this._leftSide, "backgroundPosition", "top left");
-
- this._rightSide = dojo.create("div", {}, this.domNode, "last");
- dojo.style(this._rightSide, "position", "absolute");
- dojo.style(this._rightSide, "top", "0px");
-
- // set background
- dojo.style(this._rightSide, "backgroundImage", "url('" + require.toUrl("ibm/images/right_shadow.png") + "')");
- dojo.style(this._rightSide, "backgroundPosition", "top right");
- }
- });
-});
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- //-->
- </script>
-</body>
-</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test17-fmt.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test17-fmt.html
deleted file mode 100644
index 9d9dc72..0000000
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test17-fmt.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Insert title here</title>
-</head>
-<body>
- <input onchange="change();">
- <button onclick="dochange();">click</button>
- <div></div>
- <script type="text/javascript">
- function dochange() {
- var input = document.getElementsByTagName("input")[0];
- var div = document.getElementsByTagName("div")[0];
-
- var str = "";
- input.setAttribute("value", "bbb");
- for ( var i in window) {
- str += i + "=" + window[i] + "<BR>";
- }
- div.innerHTML = str;
- }
-
- function change() {
- alert(this);
- }
- </script>
-
-</body>
-</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test17.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test17.html
deleted file mode 100644
index 9d9dc72..0000000
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test17.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Insert title here</title>
-</head>
-<body>
- <input onchange="change();">
- <button onclick="dochange();">click</button>
- <div></div>
- <script type="text/javascript">
- function dochange() {
- var input = document.getElementsByTagName("input")[0];
- var div = document.getElementsByTagName("div")[0];
-
- var str = "";
- input.setAttribute("value", "bbb");
- for ( var i in window) {
- str += i + "=" + window[i] + "<BR>";
- }
- div.innerHTML = str;
- }
-
- function change() {
- alert(this);
- }
- </script>
-
-</body>
-</html> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test18-fmt.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test18-fmt.html
deleted file mode 100644
index 2d9c7c1..0000000
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test18-fmt.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<script type="text/javascript">
- $(document).ready(function() {
- // load up the meme data
- $.getJSON('ajax/test.json', function(data) {
- var items = [];
-
- $.each(data, function(key, val) {
- items.push('<li id="' + key + '">' + val + '</li>');
- });
-
- $('<ul/>', {
- 'class' : 'my-new-list',
- html : items.join('')
- }).appendTo('body');
- });
- });
-</script>
diff --git a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test18.html b/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test18.html
deleted file mode 100644
index 9fe269a..0000000
--- a/tests/org.eclipse.wst.jsdt.web.ui.tests/testFiles/test18.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<script type="text/javascript">
- $(document).ready(function() {
- // load up the meme data
- $.getJSON('ajax/test.json', function(data) {
- var items = [];
-
- $.each(data, function(key, val) {
- items.push('<li id="' + key + '">' + val + '</li>');
- });
-
- $('<ul/>', {
- 'class': 'my-new-list',
- html: items.join('')
- }).appendTo('body');
-});
- });
-</script>