Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp')
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/JSPUIPreferencesTest.java114
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/JSPUITestSuite.java66
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/JSPUITestsPlugin.java96
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/Logger.java144
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestEditorConfigurationJSP.java47
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestEmailNotice.java29
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestModelClone.java313
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestModelEmbeddedContentType.java139
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/BeanInfoProviderTest.java231
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/JSPJavaTranslatorTest.java83
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/JSPTranslationTest.java349
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/testfiles/jspInJavascript.jsp27
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/translated_text.bin37
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/translated_xml_jsp.bin33
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/translated_xml_jsp_cdata.bin37
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentdescription/TestContentDescription.java157
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/document/FileBufferDocumentTester.java312
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/document/UnzippedProjectTester.java124
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/examples/CreatingJSPExpression.java73
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/model/TestModelsFromFiles.java357
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/modelquery/ModelQueryTester.java390
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/ColorRegions.java59
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/DebugDocument.java104
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/ScannerUnitTests.java1212
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/ScanningTests.java286
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/SimpleNode.java402
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/StructuredDocumentToDOMUnitTests.java360
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/StyledTextContentSpec.java951
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/StyledTextTest.java98
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/UnitTests.java1851
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/pagedirective/TestPageDirective.java204
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/TestStructuredPartitionerJSP.java294
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/company300k.jsp8099
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example01.jsp3
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example02.jsp9
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example03.jsp8
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example04.jsp3
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example05.jsp14
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example06.jsp1
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/registry/AdapterFactoryRegistryTest.java130
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/search/JSPSearchTests.java251
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/threaded/ThreadedModelReadEditTest.java293
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/CommonXML.java86
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/DateUtil.java47
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/FileUtil.java166
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/ProjectUnzipUtility.java391
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/ProjectUtil.java117
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/TimestampUtil.java52
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/WorkspaceProgressMonitor.java49
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/viewer/TestViewerConfigurationJSP.java246
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/viewer/ViewerTestJSP.java448
51 files changed, 0 insertions, 19392 deletions
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/JSPUIPreferencesTest.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/JSPUIPreferencesTest.java
deleted file mode 100644
index 12156c76e..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/JSPUIPreferencesTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 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.jst.jsp.ui.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.internal.preferences.JSPUIPreferenceNames;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-
-/**
- * The purpose of this test is to verify the validity of the JSP Source
- * editor preferences. Tests include setting/getting preferences.
- *
- * NOTE: This test should be preformed on a clean workspace. If performed on
- * an existing workspace, this test will manipulate preferences in the
- * workspace, though attempts will be made to restore original values after
- * testing.
- */
-public class JSPUIPreferencesTest extends TestCase {
- /**
- * Tests existance of preference values when getting preference values
- * through Platform.getPreferencesService()
- */
- public void testBundleGetPreferences() {
- final String bundleName = "org.eclipse.wst.html.ui";
-
- // need to start up bundle for default values to be loaded
- Bundle bundle = Platform.getBundle(bundleName);
- try {
- if (bundle != null)
- bundle.start();
- else
- fail("Get preference value failed because could not find bundle: " + bundleName);
- } catch (BundleException e) {
- fail("Get preference value failed because of exception starting bundle: " + bundleName + " exception: " + e);
- }
-
- bundleGetPreference(bundleName, JSPUIPreferenceNames.AUTO_PROPOSE);
- bundleGetPreference(bundleName, JSPUIPreferenceNames.AUTO_PROPOSE_CODE);
- }
-
- private void bundleGetPreference(String bundleName, String prefKey) {
- String defaultValue = Long.toString(System.currentTimeMillis()); // random
- // string
-
- String value = Platform.getPreferencesService().getString(bundleName, prefKey, defaultValue, null);
- assertNotSame("Get preference value failed using Platform.getPreferencesService. Key: " + prefKey, defaultValue, value);
- }
-
- /**
- * Tests default values of preferences.
- *
- * NOTE: Expected default values are hard-coded, so if default values do
- * get changed, assertions need to be updated as well
- */
- public void testPluginGetDefaultPreferences() {
- IPreferenceStore store = JSPUIPlugin.getDefault().getPreferenceStore();
-
- pluginGetDefaultPreference(store, JSPUIPreferenceNames.AUTO_PROPOSE, Boolean.toString(true));
- pluginGetDefaultPreference(store, JSPUIPreferenceNames.AUTO_PROPOSE_CODE, "<");
- }
-
- private void pluginGetDefaultPreference(IPreferenceStore store, String prefKey, String expected) {
- String defaultValue = store.getDefaultString(prefKey);
- assertEquals("Get default preference value failed using plugin.getPreferenceStore. Key: " + prefKey, expected, defaultValue);
- }
-
- /**
- * Tests setting preference values by setting preference value to be a
- * certain value, then getting the preference value to verify it was set.
- */
- public void testPluginSetPreferences() {
- IPreferenceStore store = JSPUIPlugin.getDefault().getPreferenceStore();
-
- pluginSetPreferenceBoolean(store, JSPUIPreferenceNames.AUTO_PROPOSE);
- pluginSetPreferenceString(store, JSPUIPreferenceNames.AUTO_PROPOSE_CODE);
- }
-
- private void pluginSetPreferenceBoolean(IPreferenceStore store, String prefKey) {
- boolean originalValue = store.getBoolean(prefKey);
- boolean expectedValue = !originalValue;
- store.setValue(prefKey, expectedValue);
- boolean foundValue = store.getBoolean(prefKey);
- assertEquals("Set preference value failed using plugin.getPreferenceStore. Key: " + prefKey + " expected: " + expectedValue + " found: " + foundValue, expectedValue, foundValue);
-
- // attempt to restore original preference value
- store.setValue(prefKey, originalValue);
- }
-
- private void pluginSetPreferenceString(IPreferenceStore store, String prefKey) {
- String originalValue = store.getString(prefKey);
- String expectedValue = Long.toString(System.currentTimeMillis()); // random
- // string
- store.setValue(prefKey, expectedValue);
- String foundValue = store.getString(prefKey);
- assertEquals("Set preference value failed using plugin.getPreferenceStore. Key: " + prefKey + " expected: " + expectedValue + " found: " + foundValue, expectedValue, foundValue);
-
- // attempt to restore original preference value
- store.setValue(prefKey, originalValue);
- }
-}
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/JSPUITestSuite.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/JSPUITestSuite.java
deleted file mode 100644
index 5b41a17a2..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/JSPUITestSuite.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.jst.jsp.ui.tests.contentassist.BeanInfoProviderTest;
-import org.eclipse.jst.jsp.ui.tests.contentassist.JSPJavaTranslatorTest;
-import org.eclipse.jst.jsp.ui.tests.contentassist.JSPTranslationTest;
-import org.eclipse.jst.jsp.ui.tests.contentdescription.TestContentDescription;
-import org.eclipse.jst.jsp.ui.tests.document.FileBufferDocumentTester;
-import org.eclipse.jst.jsp.ui.tests.model.TestModelsFromFiles;
-import org.eclipse.jst.jsp.ui.tests.modelquery.ModelQueryTester;
-import org.eclipse.jst.jsp.ui.tests.other.ScannerUnitTests;
-import org.eclipse.jst.jsp.ui.tests.other.UnitTests;
-import org.eclipse.jst.jsp.ui.tests.pagedirective.TestPageDirective;
-import org.eclipse.jst.jsp.ui.tests.partitioning.TestStructuredPartitionerJSP;
-import org.eclipse.jst.jsp.ui.tests.registry.AdapterFactoryRegistryTest;
-import org.eclipse.jst.jsp.ui.tests.viewer.TestViewerConfigurationJSP;
-
-
-
-
-public class JSPUITestSuite extends TestSuite {
- public static Test suite() {
- return new JSPUITestSuite();
- }
-
- public JSPUITestSuite() {
- super("SSE JSP UI Test Suite");
-
- addTest(new TestSuite(ScannerUnitTests.class, "ScannerUnitTests"));
- addTest(new TestSuite(UnitTests.class, "UnitTests"));
- addTest(new TestSuite(TestStructuredPartitionerJSP.class, "TestStructuredPartioner"));
- addTest(new TestSuite(ModelQueryTester.class, "ModelQueryTester"));
- addTest(new TestSuite(JSPJavaTranslatorTest.class, "JSPJavaTranslatorTest"));
- addTest(new TestSuite(TestEmailNotice.class, "TestEmailNotice"));
- addTest(new TestSuite(BeanInfoProviderTest.class, "BeanInfoProviderTest"));
- addTest(new TestSuite(JSPTranslationTest.class, "JSPTranslationTest"));
- addTest(new TestSuite(AdapterFactoryRegistryTest.class, "AdapterFactoryRegistryText"));
- addTest(new TestSuite(JSPUIPreferencesTest.class));
- addTest(new TestSuite(TestViewerConfigurationJSP.class));
- addTest(new TestSuite(TestEditorConfigurationJSP.class));
-
- // moved from jsp core tests because they require UI
- addTest(new TestSuite(TestPageDirective.class));
- addTest(new TestSuite(FileBufferDocumentTester.class));
- addTest(new TestSuite(TestModelClone.class));
-
- addTest(new TestSuite(TestModelsFromFiles.class, "TestModelsFromFiles"));
- addTest(new TestSuite(TestModelEmbeddedContentType.class, "TestModelEmbeddedContentType"));
-
- addTest(new TestSuite(TestContentDescription.class, "Content Description Tests"));
- // pa_TODO fix this test
- //addTest(new TestSuite(JSPSearchTests.class));
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/JSPUITestsPlugin.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/JSPUITestsPlugin.java
deleted file mode 100644
index 5ec1b640c..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/JSPUITestsPlugin.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class JSPUITestsPlugin extends Plugin {
- //The shared instance.
- private static JSPUITestsPlugin plugin;
- //Resource bundle.
- private ResourceBundle resourceBundle;
- public static final String ID = "org.eclipse.jst.jsp.ui.tests";
-
- /**
- * The constructor.
- */
- public JSPUITestsPlugin() {
- super();
- plugin = this;
- try {
- resourceBundle = ResourceBundle.getBundle("org.eclipse.jst.jsp.ui.tests.SSEForJSPTestsPluginResources");
- }
- catch (MissingResourceException x) {
- resourceBundle = null;
- }
- }
-
- /**
- * Returns the shared instance.
- */
- public static JSPUITestsPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Returns the string from the plugin's resource bundle,
- * or 'key' if not found.
- */
- public static String getResourceString(String key) {
- ResourceBundle bundle = JSPUITestsPlugin.getDefault().getResourceBundle();
- try {
- return (bundle != null) ? bundle.getString(key) : key;
- }
- catch (MissingResourceException e) {
- return key;
- }
- }
-
- /**
- * Returns the plugin's resource bundle,
- */
- public ResourceBundle getResourceBundle() {
- return resourceBundle;
- }
-
- public static URL getInstallLocation() {
- URL installLocation = Platform.getBundle("org.eclipse.jst.jsp.ui.tests").getEntry("/");
- URL resolvedLocation = null;
- try {
- resolvedLocation = FileLocator.resolve(installLocation);
- }
- catch (IOException e) {
- // impossible
- throw new Error(e);
- }
- return resolvedLocation;
- }
-
- public static File getTestFile(String filepath) {
- URL installURL = getInstallLocation();
- //String scheme = installURL.getProtocol();
- String path = installURL.getPath();
- String location = path + filepath;
- File result = new File(location);
- return result;
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/Logger.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/Logger.java
deleted file mode 100644
index 44de87258..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/Logger.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests;
-
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.Bundle;
-
-/**
- * Small convenience class to log messages to plugin's log file and also, if desired,
- * the console. This class should only be used by classes in this plugin. Other
- * plugins should make their own copy, with appropriate ID.
- */
-public class Logger {
- private static final String PLUGIN_ID = "org.eclipse.jst.jsp.ui.tests"; //$NON-NLS-1$
-
- private static final String TRACEFILTER_LOCATION = "/debug/tracefilter"; //$NON-NLS-1$
-
- public static final int OK = IStatus.OK; // 0
- public static final int INFO = IStatus.INFO; // 1
- public static final int WARNING = IStatus.WARNING; // 2
- public static final int ERROR = IStatus.ERROR; // 4
-
- public static final int OK_DEBUG = 200 + OK;
- public static final int INFO_DEBUG = 200 + INFO;
- public static final int WARNING_DEBUG = 200 + WARNING;
- public static final int ERROR_DEBUG = 200 + ERROR;
-
- /**
- * Adds message to log.
- * @param level severity level of the message (OK, INFO, WARNING, ERROR, OK_DEBUG, INFO_DEBUG, WARNING_DEBUG, ERROR_DEBUG)
- * @param message text to add to the log
- * @param exception exception thrown
- */
- protected static void _log(int level, String message, Throwable exception) {
- if (level == OK_DEBUG || level == INFO_DEBUG || level == WARNING_DEBUG || level == ERROR_DEBUG) {
- if (!isDebugging())
- return;
- }
-
- int severity = IStatus.OK;
- switch (level) {
- case INFO_DEBUG :
- case INFO :
- severity = IStatus.INFO;
- break;
- case WARNING_DEBUG :
- case WARNING :
- severity = IStatus.WARNING;
- break;
- case ERROR_DEBUG :
- case ERROR :
- severity = IStatus.ERROR;
- }
- message = (message != null) ? message : "null"; //$NON-NLS-1$
- Status statusObj = new Status(severity, PLUGIN_ID, severity, message, exception);
- Bundle bundle = Platform.getBundle(PLUGIN_ID);
- if (bundle != null)
- Platform.getLog(bundle).log(statusObj);
- }
-
- /**
- * Prints message to log if category matches /debug/tracefilter option.
- * @param message text to print
- * @param category category of the message, to be compared with /debug/tracefilter
- */
- protected static void _trace(String category, String message, Throwable exception) {
- if (isTracing(category)) {
- message = (message != null) ? message : "null"; //$NON-NLS-1$
- Status statusObj = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, exception);
- Bundle bundle = Platform.getBundle(PLUGIN_ID);
- if (bundle != null)
- Platform.getLog(bundle).log(statusObj);
- }
- }
-
- /**
- * @return true if the platform is debugging
- */
- public static boolean isDebugging() {
- return Platform.inDebugMode();
- }
-
- /**
- * Determines if currently tracing a category
- * @param category
- * @return true if tracing category, false otherwise
- */
- public static boolean isTracing(String category) {
- if (!isDebugging())
- return false;
-
- String traceFilter = Platform.getDebugOption(PLUGIN_ID + TRACEFILTER_LOCATION);
- if (traceFilter != null) {
- StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$
- while (tokenizer.hasMoreTokens()) {
- String cat = tokenizer.nextToken().trim();
- if (category.equals(cat)) {
- return true;
- }
- }
- }
- return false;
- }
-
- public static void log(int level, String message) {
- _log(level, message, null);
- }
-
- public static void log(int level, String message, Throwable exception) {
- _log(level, message, exception);
- }
-
- public static void logException(String message, Throwable exception) {
- _log(ERROR, message, exception);
- }
-
- public static void logException(Throwable exception) {
- _log(ERROR, exception.getMessage(), exception);
- }
-
- public static void traceException(String category, String message, Throwable exception) {
- _trace(category, message, exception);
- }
-
- public static void traceException(String category, Throwable exception) {
- _trace(category, exception.getMessage(), exception);
- }
-
- public static void trace(String category, String message) {
- _trace(category, message, null);
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestEditorConfigurationJSP.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestEditorConfigurationJSP.java
deleted file mode 100644
index ece48bc72..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestEditorConfigurationJSP.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM - Initial API and implementation
- * Jens Lukowski/Innoopract - initial renaming/restructuring
- *
- */
-package org.eclipse.jst.jsp.ui.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.jst.jsp.ui.StructuredTextViewerConfigurationJSP;
-import org.eclipse.jst.jsp.ui.views.contentoutline.JSPContentOutlineConfiguration;
-import org.eclipse.wst.sse.ui.internal.ExtendedConfigurationBuilder;
-import org.eclipse.wst.xml.ui.views.properties.XMLPropertySheetConfiguration;
-
-/**
- * Tests retrieving editor contributions for jsp content type
- */
-public class TestEditorConfigurationJSP extends TestCase {
- public void testGetSourceViewerConfiguration() {
- Object o = ExtendedConfigurationBuilder.getInstance().getConfiguration(ExtendedConfigurationBuilder.SOURCEVIEWERCONFIGURATION, ContentTypeIdForJSP.ContentTypeID_JSP);
- assertNotNull("no source viewer configuration for " + ContentTypeIdForJSP.ContentTypeID_JSP, o);
- // check for over-qualified subclasses
- assertEquals("unexpected source viewer configuration for " + ContentTypeIdForJSP.ContentTypeID_JSP, o.getClass(), StructuredTextViewerConfigurationJSP.class);
- }
-
- public void testGetContentOutlineViewerConfiguration() {
- Object o = ExtendedConfigurationBuilder.getInstance().getConfiguration(ExtendedConfigurationBuilder.CONTENTOUTLINECONFIGURATION, ContentTypeIdForJSP.ContentTypeID_JSP);
- assertNotNull("no content outline viewer configuration for " + ContentTypeIdForJSP.ContentTypeID_JSP, o);
- // check for over-qualified subclasses
- assertEquals("unexpected content outline viewer configuration for " + ContentTypeIdForJSP.ContentTypeID_JSP, o.getClass(), JSPContentOutlineConfiguration.class);
- }
-
- public void testGetPropertySheetConfiguration() {
- Object o = ExtendedConfigurationBuilder.getInstance().getConfiguration(ExtendedConfigurationBuilder.PROPERTYSHEETCONFIGURATION, ContentTypeIdForJSP.ContentTypeID_JSP);
- assertNotNull("no property sheet configuration for " + ContentTypeIdForJSP.ContentTypeID_JSP, o);
- // check for over-qualified subclasses
- assertEquals("unexpected property sheet configuration for " + ContentTypeIdForJSP.ContentTypeID_JSP, o.getClass(), XMLPropertySheetConfiguration.class);
- }
-}
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestEmailNotice.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestEmailNotice.java
deleted file mode 100644
index 154156da6..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestEmailNotice.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests;
-
-import junit.framework.TestCase;
-
-public class TestEmailNotice extends TestCase {
- private boolean sendNotifications = false;
-
- public TestEmailNotice() {
- super();
- }
-
- public TestEmailNotice(String name) {
- super(name);
- }
-
- public void testEmail() {
- assertFalse("Simple test to be sure email gets sent on failure", sendNotifications);
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestModelClone.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestModelClone.java
deleted file mode 100644
index faaa54029..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestModelClone.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-
-import org.eclipse.jst.jsp.core.internal.document.PageDirectiveAdapter;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.wst.html.core.internal.modelhandler.EmbeddedHTML;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.modelhandler.EmbeddedXML;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Document;
-
-/**
- *
- */
-public class TestModelClone extends TestCase {
-
- /**
- * Constructor for TestModelClone.
- */
- public TestModelClone(String name) {
- super(name);
- }
-
- public static Test getTest() {
- return new TestModelClone("testCreateStructuredModelJSP");
- }
-
- public void testCloneStructuredModelXML() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForXML.ContentTypeID_XML);
- assertTrue("model could not be created!", model != null);
-
- IStructuredModel clonedModel = model.newInstance();
- assertTrue("cloned model could not be created!", clonedModel != null);
- // make sure the critical variables are NOT identical, but that new instances
- // have been made
- boolean passed = true;
- // if (clonedModel.getEncodingMemento() == model.getEncodingMemento()) passed = false;
- // if (clonedModel.getParser() == model.getParser()) passed = false;
- // if (clonedModel.getReParser() == model.getReParser()) passed = false;
- assertTrue("newInstance of structured model is not correct", passed);
-
- }
-
- public void testCloneStructuredModelHTML() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForHTML.ContentTypeID_HTML);
- assertTrue("model could not be created!", model != null);
-
- IStructuredModel clonedModel = model.newInstance();
- assertTrue("cloned model could not be created!", clonedModel != null);
- // make sure the critical variables are NOT identical, but that new instances
- // have been made
- boolean passed = true;
- // if (clonedModel.getEncodingMemento() == model.getEncodingMemento()) passed = false;
- // if (clonedModel.getParser() == model.getParser()) passed = false;
- // if (clonedModel.getReParser() == model.getReParser()) passed = false;
- assertTrue("newInstance of structured model is not correct", passed);
-
- }
-
- public void testCloneStructuredModelJSP() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForJSP.ContentTypeID_JSP);
- assertTrue("model could not be created!", model != null);
-
- IStructuredModel clonedModel = model.newInstance();
- assertTrue("cloned model could not be created!", clonedModel != null);
- // make sure the embedded type is correct
- boolean passed = true;
- Document doc = ((IDOMModel) clonedModel).getDocument();
- PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) ((INodeNotifier) doc).getExistingAdapter(PageDirectiveAdapter.class);
- assertNotNull("cloned model did not have embedded adapter", pageDirectiveAdapter);
-
- EmbeddedTypeHandler embeddedHandler = pageDirectiveAdapter.getEmbeddedType();
- assertNotNull("cloned model did not have embedded handler", embeddedHandler);
-
- // if (clonedModel.getEncodingMemento() == model.getEncodingMemento()) passed = false;
- // if (clonedModel.getParser() == model.getParser()) passed = false;
- // if (clonedModel.getReParser() == model.getReParser()) passed = false;
- assertTrue("newInstance of structured model is not correct", passed);
-
- }
-
- public void testCloneStructuredModelJSPXML() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForJSP.ContentTypeID_JSP);
- assertTrue("model could not be created!", model != null);
- // note, we initialy expect HTML, since there is not content
- checkEmbeddedType(model, EmbeddedHTML.class);
-
- String testContent = "<%@ page contentType=\"text/xml\" %>";
- model.getStructuredDocument().setText(this, testContent);
-
- // modified for design change, where re-init should be handled before
- // set returns.
- assertTrue("model should not need reinit", !model.isReinitializationNeeded());
-
- // but if it did need re-init, here's the right calling sequence
- // if (model.isReinitializationNeeded()) {
- // model.aboutToChangeModel();
- // model = model.reinit();
- // model.changedModel();
- // }
-
- checkEmbeddedType(model, EmbeddedXML.class);
-
- IStructuredModel clonedModel = model.newInstance();
- assertTrue("cloned model could not be created!", clonedModel != null);
- checkEmbeddedType(clonedModel, EmbeddedXML.class);
-
- }
-
- private void checkEmbeddedType(IStructuredModel model, Class expectedType) {
- Document doc = ((IDOMModel) model).getDocument();
- PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) ((INodeNotifier) doc).getExistingAdapter(PageDirectiveAdapter.class);
- assertNotNull("model did not have embedded adapter", pageDirectiveAdapter);
-
- EmbeddedTypeHandler embeddedHandler = pageDirectiveAdapter.getEmbeddedType();
- assertNotNull("model did not have embedded handler", embeddedHandler);
-
- assertEquals(expectedType, embeddedHandler.getClass());
-
- }
-
- public void testCreateStructuredModelJSP() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForJSP.ContentTypeID_JSP);
- assertTrue("model could not be created!", model != null);
-
- ArrayList factories = (ArrayList) model.getFactoryRegistry().getFactories();
- factories = (ArrayList) factories.clone();
-
- IStructuredModel clonedModel = model.newInstance();
- if (model.getModelHandler() == null) {
- System.out.println();
- assertTrue(false);
- }
- assertTrue("cloned model could not be created!", clonedModel != null);
- // make sure the critical variables are correct.
-
- ArrayList newFactories = (ArrayList) clonedModel.getFactoryRegistry().getFactories();
- newFactories = (ArrayList) newFactories.clone();
-
- boolean passed = checkFactoriesListForIdentity(factories, newFactories);
- assertTrue("newInstance of structured model is not correct", passed);
-
- passed = checkForSameEmbeddedFactories(model, clonedModel);
- assertTrue("newInstance of structured model is not correct", passed);
-
- // Now, assigning some content shouldn't change the factories
- clonedModel.getStructuredDocument().replaceText(this, 0, 0, "<sample> text");
- ArrayList twoFactories = (ArrayList) clonedModel.getFactoryRegistry().getFactories();
- twoFactories = (ArrayList) twoFactories.clone();
-
- passed = checkFactoriesListForIdentity(factories, twoFactories);
- assertTrue("newInstance of structured model is not correct", passed);
-
- passed = checkForSameEmbeddedFactories(model, clonedModel);
- assertTrue("newInstance of structured model is not correct", passed);
-
-
- // Now, assigning use a page directive, but leaving embedded type the same as default
- clonedModel.getStructuredDocument().setText(this, "<%@ page contentType=\"text/html\"");
- ArrayList threeFactories = (ArrayList) clonedModel.getFactoryRegistry().getFactories();
- threeFactories = (ArrayList) threeFactories.clone();
-
- passed = checkFactoriesListForIdentity(factories, threeFactories);
- assertTrue("newInstance of structured model is not correct", passed);
-
- passed = checkForSameEmbeddedFactories(model, clonedModel);
- assertTrue("newInstance of structured model is not correct", passed);
-
-
- }
-
- /**
- * Method checkEmbeddedFactories.
- * @param model
- * @param clonedModel
- * @return boolean
- */
- private boolean checkForSameEmbeddedFactories(IStructuredModel model, IStructuredModel clonedModel) {
- boolean result = true;
-
-
- EmbeddedTypeHandler oldEmbeddedType = getEmbeddedType(model);
- EmbeddedTypeHandler newEmbeddedType = getEmbeddedType(clonedModel);
- // expect to be the same type
- if (!oldEmbeddedType.getClass().equals(newEmbeddedType.getClass())) {
- result = false;
- assertTrue(result);
- }
-
- List oldFactories = oldEmbeddedType.getAdapterFactories();
- List newFactories = newEmbeddedType.getAdapterFactories();
- result = checkFactoriesListForEquivalence(oldFactories, newFactories);
-
-
- return result;
- }
-
- private EmbeddedTypeHandler getEmbeddedType(IStructuredModel model) {
- Document doc = ((IDOMModel) model).getDocument();
- PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) ((INodeNotifier) doc).getExistingAdapter(PageDirectiveAdapter.class);
- assertNotNull("model did not have embedded adapter", pageDirectiveAdapter);
-
- EmbeddedTypeHandler embeddedHandler = pageDirectiveAdapter.getEmbeddedType();
- assertNotNull("model did not have embedded handler", embeddedHandler);
-
- return embeddedHandler;
- }
-
-
- /**
- * Method checkFactoriesList.
- * @param factories
- * @param newFactories
- * @return boolean
- */
- private boolean checkFactoriesListForIdentity(List factories, List newFactories) {
- boolean result = true;
- if (factories.size() != newFactories.size()) {
- result = false;
- }
- else {
- // nned not be identical, nor same order
- // for (int i = 0; i < factories.size(); i++) {
- // if (!(factories.get(i) == newFactories.get(i))) {
- // result = false;
- // break;
- // }
- // }
- }
- return result;
- }
-
- private boolean checkFactoriesListForEquivalence(List factories, List newFactories) {
- boolean result = true;
- if (factories.size() != newFactories.size()) {
- result = false;
- }
- else {
- for (int i = 0; i < factories.size(); i++) {
- if (!factories.get(i).getClass().equals(newFactories.get(i).getClass())) {
- result = false;
- break;
- }
- }
- }
- return result;
- }
-
-
- public void testCreateStructuredModelHTML() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForHTML.ContentTypeID_HTML);
- assertTrue("model could not be created!", model != null);
-
- ArrayList factories = (ArrayList) model.getFactoryRegistry().getFactories();
- factories = (ArrayList) factories.clone();
-
- IStructuredModel clonedModel = model.newInstance();
- assertTrue("cloned model could not be created!", clonedModel != null);
- // make sure the critical variables are correct.
-
- ArrayList newFactories = (ArrayList) clonedModel.getFactoryRegistry().getFactories();
- newFactories = (ArrayList) newFactories.clone();
-
- boolean passed = checkFactoriesListForIdentity(factories, newFactories);
-
- assertTrue("newInstance of structured model is not correct", passed);
-
- // Now, assigning some content shouldn't change the factories
- clonedModel.getStructuredDocument().setText(this, "<sample> text");
- ArrayList twoFactories = (ArrayList) clonedModel.getFactoryRegistry().getFactories();
- twoFactories = (ArrayList) twoFactories.clone();
-
- passed = checkFactoriesListForIdentity(factories, newFactories);
- assertTrue("newInstance of structured model is not correct", passed);
-
- }
-
-
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestModelEmbeddedContentType.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestModelEmbeddedContentType.java
deleted file mode 100644
index 7889e5b86..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/TestModelEmbeddedContentType.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-
-import org.eclipse.jst.jsp.core.internal.document.PageDirectiveAdapter;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.internal.modelhandler.ModelHandlerUtility;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Document;
-
-/**
- * @author davidw
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates. To enable and disable the creation of
- * type comments go to Window>Preferences>Java>Code Generation.
- */
-public class TestModelEmbeddedContentType extends TestCase {
-
- /**
- * Constructor for TestModelClone.
- */
- public TestModelEmbeddedContentType(String name) {
- super(name);
- }
-
- public static void main(String[] args) {
- }
-
- public static Test getTest() {
- return new TestModelEmbeddedContentType("testStructuredModelEmbeddedJSPChange");
- }
-
- protected void checkEmbeddedType(IStructuredModel clonedModel, Object expectedType) {
- Document doc = ((IDOMModel) clonedModel).getDocument();
- PageDirectiveAdapter embeddedTypeAdapter = (PageDirectiveAdapter) ((INodeNotifier) doc).getAdapterFor(PageDirectiveAdapter.class);
- assertNotNull("cloned model did not have embedded adapter", embeddedTypeAdapter);
-
- EmbeddedTypeHandler embeddedHandler = embeddedTypeAdapter.getEmbeddedType();
- assertNotNull("cloned model did not have embedded handler", embeddedHandler);
-
- assertTrue("cloned model embeddedHandler is wrong type", embeddedHandler.equals(expectedType));
- }
-
- public void testStructuredModelEmbeddedXML() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForXML.ContentTypeID_XML);
- assertTrue("model could not be created!", model != null);
-
- // XML should NOT have an embedded type
- Document doc = ((IDOMModel) model).getDocument();
- EmbeddedTypeHandler embeddedHandler = (EmbeddedTypeHandler) ((INodeNotifier) doc).getAdapterFor(EmbeddedTypeHandler.class);
- assertTrue("embededHanlder should be null for XML", embeddedHandler == null);
-
- }
-
- public void testStructuredModelEmbeddedHTML() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForHTML.ContentTypeID_HTML);
- assertTrue("model could not be created!", model != null);
-
- // should NOT have an embedded type
- Document doc = ((IDOMModel) model).getDocument();
- EmbeddedTypeHandler embeddedHandler = (EmbeddedTypeHandler) ((INodeNotifier) doc).getAdapterFor(EmbeddedTypeHandler.class);
- assertTrue("embededHanlder should be null for HTML", embeddedHandler == null);
-
- }
-
- protected IStructuredModel doStructuredModelEmbeddedJSP() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForJSP.ContentTypeID_JSP);
- assertTrue("model could not be created!", model != null);
-
- // should have an embedded type
- Document doc = ((IDOMModel) model).getDocument();
- PageDirectiveAdapter embeddedHandler = (PageDirectiveAdapter) ((INodeNotifier) doc).getAdapterFor(PageDirectiveAdapter.class);
- assertTrue("embededHanlder should NOT be null for JSP", embeddedHandler != null);
-
- // embedded type should be HTML since no content
- checkEmbeddedType(model, ModelHandlerUtility.getDefaultEmbeddedType());
-
- String testContent = "<%@ page contentType=\"text/html\" %>";
- model.getStructuredDocument().replaceText(this, 0, 0, testContent);
- assertTrue("reinit should NOT be needed in this case", !model.isReinitializationNeeded());
-
- // embedded type should STILL be HTML since no contentType was
- // text/html
- checkEmbeddedType(model, ModelHandlerUtility.getDefaultEmbeddedType());
-
- return model;
- //
- }
-
- public void testStructuredModelEmbeddedJSP() throws IOException {
- doStructuredModelEmbeddedJSP();
- }
-
- public void testStructuredModelEmbeddedJSPChange() throws IOException {
-
- // start with the full test case
- IStructuredModel model = doStructuredModelEmbeddedJSP();
- // change "html" to "xml"
- model.getStructuredDocument().replaceText(this, 27, 4, "xml");
- // with reinit in XML model ... its already been re-initialized
- // assertTrue("reinit SHOULD be needed in this case",
- // model.isReiniitializationNeeded());
-
- if (model.isReinitializationNeeded()) {
- model.reinit();
- }
-
- // embedded type should now be XML
- checkEmbeddedType(model, ModelHandlerUtility.getEmbeddedContentTypeFor("text/xml"));
-
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/BeanInfoProviderTest.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/BeanInfoProviderTest.java
deleted file mode 100644
index d5dca88c1..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/BeanInfoProviderTest.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.contentassist;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IOpenable;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.IParent;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jst.jsp.ui.internal.contentassist.BeanInfoProvider;
-import org.eclipse.jst.jsp.ui.internal.contentassist.IJavaPropertyDescriptor;
-import org.eclipse.jst.jsp.ui.tests.util.FileUtil;
-import org.eclipse.jst.jsp.ui.tests.util.ProjectUnzipUtility;
-import org.eclipse.osgi.service.datalocation.Location;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-
-/**
- * This class tests the BeanInfoProvider. Currently test workspace MUST point
- * to the specific one for this test.
- *
- * @author pavery
- */
-public class BeanInfoProviderTest extends TestCase {
- class OverwriteNone implements IOverwriteQuery {
- public String queryOverwrite(String pathString) {
- return IOverwriteQuery.ALL;
- }
- }
-
- private IResource fResource;
- private BeanInfoProvider fProvider;
- private HashSet fAlreadyOpen = new HashSet();
- private ProjectUnzipUtility fProjUtil = null;
- private boolean fIsSetup = false;
-
- public BeanInfoProviderTest(String name) {
- super(name);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- if (!this.fIsSetup) {
- initializeResource();
- this.fIsSetup = true;
- }
- }
-
- private void initializeResource() throws Exception {
- fProjUtil = new ProjectUnzipUtility();
- // root of workspace directory
- Location platformLocation = Platform.getInstanceLocation();
- // platform location may be null -- depends on "mode" of platform
- if (platformLocation != null) {
- File zipFile = FileUtil.makeFileFor(ProjectUnzipUtility.PROJECT_ZIPS_FOLDER, "beaninfo_tests.zip", ProjectUnzipUtility.PROJECT_ZIPS_FOLDER);
- fProjUtil.unzipAndImport(zipFile, platformLocation.getURL().getPath());
- fProjUtil.initJavaProject("BEANINFO");
- IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
- String workspaceRelativeLocation = "/BEANINFO/BEAN_TESTS/beanInfo_test.jsp";
- fResource = root.getFile(new Path(workspaceRelativeLocation));
- IJavaProject javaProj = JavaCore.create(fResource.getProject());
- openPath(javaProj);
- }
- }
-
- protected File getSourceDirectory(String absoluteSourceDirectoryPath) {
- File sourceDirectory = new File(absoluteSourceDirectoryPath);
- if (!sourceDirectory.exists() || !sourceDirectory.isDirectory()) {
- return null;
- }
- return sourceDirectory;
- }
-
- private void openPath(IJavaProject javaProj) {
- try {
- if (javaProj.exists() && !javaProj.isOpen()) {
- javaProj.open(null);
- }
- IPackageFragmentRoot root = javaProj.getPackageFragmentRoot(fResource.getProject());
- if (!root.isOpen())
- root.open(null);
- IPackageFragment frag = getPackageFragment(root, "BEAN_TESTS");
- openAll(frag);
- frag = getPackageFragment(root, "org");
- if (frag != null && !frag.isOpen())
- openAll(frag);
- frag = getPackageFragment(root, "org.eclipse");
- if (frag != null && !frag.isOpen())
- openAll(frag);
- frag = getPackageFragment(root, "org.eclipse.jst");
- if (frag != null && !frag.isOpen())
- openAll(frag);
- frag = getPackageFragment(root, "org.eclipse.jst.jsp");
- if (frag != null && !frag.isOpen())
- openAll(frag);
- frag = getPackageFragment(root, "org.eclipse.jst.jsp.ui");
- if (frag != null && !frag.isOpen())
- openAll(frag);
- frag = getPackageFragment(root, "org.eclipse.jst.jsp.ui.tests");
- if (frag != null && !frag.isOpen())
- openAll(frag);
- }
- catch (JavaModelException e) {
- e.printStackTrace();
- }
- }
-
- private IPackageFragment getPackageFragment(IPackageFragmentRoot root, String fragmentName) throws JavaModelException {
- IPackageFragment frag = null;
- IJavaElement[] children = root.getChildren();
- for (int i = 0; i < children.length; i++) {
- if (children[i].getElementName().equals(fragmentName)) {
- frag = (IPackageFragment) children[i];
- break;
- }
- }
- return frag;
- }
-
- private void openAll(IJavaElement javaElem) throws JavaModelException {
- if (javaElem instanceof IOpenable) {
- if (!((IOpenable) javaElem).isOpen())
- ((IOpenable) javaElem).open(null);
- }
- if (javaElem instanceof IParent && ((IParent) javaElem).hasChildren()) {
- IJavaElement[] children = ((IParent) javaElem).getChildren();
- for (int i = 0; i < children.length; i++) {
- if (!fAlreadyOpen.contains(children[i].getElementName())) {
- fAlreadyOpen.add(children[i].getElementName());
- openAll(children[i]);
- }
- }
- }
- }
-
- public void testAll() {
- beanOnClasspath();
- beanInProject();
- }
-
- private void beanOnClasspath() {
- // pa_TODO don't use JButton, properties change
- // use something more static
- IJavaPropertyDescriptor[] descriptors = getProvider().getRuntimeProperties(fResource, "javax.swing.JButton");
- // assertEquals("Number of properties for JButton:", 122, descriptors.length);
- assertNotNull("descriptors shouldn't be null", descriptors);
-
- // List getOnly = new ArrayList();
- // List setOnly = new ArrayList();
- // List both = new ArrayList();
- // IJavaPropertyDescriptor jpd = null;
- // for (int i = 0; i < descriptors.length; i++) {
- // jpd = descriptors[i];
- // if (jpd.getReadable() && jpd.getWriteable())
- // both.add(jpd);
- // else if (jpd.getReadable() && !jpd.getWriteable())
- // getOnly.add(jpd);
- // else
- // setOnly.add(jpd);
- // }
- // assertEquals("Number of getOnly properties:", 62, getOnly.size());
- //assertEquals("Number of setOnly properties:", 0, setOnly.size());
- //assertEquals("Number of get & set properties that:", 59,
- // both.size());
- }
-
- private void beanInProject() {
- IJavaPropertyDescriptor[] descriptors = getProvider().getRuntimeProperties(fResource, "org.eclipse.jst.jsp.ui.tests.BaseAlbumCollectionBean");
- assertEquals("Number of properties for BaseAlbumCollectionBean:", 4, descriptors.length);
- List getOnly = new ArrayList();
- List setOnly = new ArrayList();
- List both = new ArrayList();
- IJavaPropertyDescriptor jpd = null;
- for (int i = 0; i < descriptors.length; i++) {
- jpd = descriptors[i];
- if (jpd.getReadable() && jpd.getWriteable())
- both.add(jpd);
- else if (jpd.getReadable() && !jpd.getWriteable())
- getOnly.add(jpd);
- else
- setOnly.add(jpd);
- }
- assertEquals("Number of getOnly properties:", 1, getOnly.size());
- assertEquals("Number of setOnly properties:", 1, setOnly.size());
- assertEquals("Number of get & set properties that:", 2, both.size());
- // get only
- jpd = (IJavaPropertyDescriptor) getOnly.get(0);
- assertEquals("get readable for get only property: ", true, jpd.getReadable());
- assertEquals("get writable for get only property:", false, jpd.getWriteable());
- assertEquals("name for get only property", "numCds", jpd.getDisplayName());
- assertEquals("type for get only property", "int", jpd.getDeclaredType());
- // set only
- jpd = (IJavaPropertyDescriptor) setOnly.get(0);
- assertEquals("get readable for set only property: ", false, jpd.getReadable());
- assertEquals("get writable for set only property:", true, jpd.getWriteable());
- assertEquals("name for set only property", "cds", jpd.getDisplayName());
- assertEquals("type for set only property", "String[]", jpd.getDeclaredType());
- // both
- jpd = (IJavaPropertyDescriptor) both.get(0);
- assertEquals("get readable for both property: ", true, jpd.getReadable());
- assertEquals("get writable for both property:", true, jpd.getWriteable());
- }
-
- private BeanInfoProvider getProvider() {
- if (fProvider == null)
- fProvider = new BeanInfoProvider();
- return fProvider;
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/JSPJavaTranslatorTest.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/JSPJavaTranslatorTest.java
deleted file mode 100644
index ade3dce92..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/JSPJavaTranslatorTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.contentassist;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslator;
-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.xml.core.internal.provisional.document.IDOMNode;
-
-/**
- * This class tests the sed JSPJavaTranslator class
- *
- * @author pavery
- */
-public class JSPJavaTranslatorTest extends TestCase {
-
- public JSPJavaTranslatorTest(String name) {
- super(name);
- }
-
- public void testAllFiles() throws UnsupportedEncodingException, IOException {
- // this test is for PMR: 91930 CMVC:218469
- testJSPInJavascript("testfiles/jspInJavascript.jsp");
- }
-
- public void testJSPInJavascript(String filename) throws UnsupportedEncodingException, IOException {
- IStructuredModel sm = getStructuredModelForRead(filename);
- if (sm != null) {
- IDOMNode xmlNode = (IDOMNode) sm.getIndexedRegion(0);
-
- if (xmlNode != null) {
- JSPTranslator jspt = new JSPTranslator();
- jspt.reset(xmlNode, null);
- // int sourceTextPos = text.indexOf("<%= testJspString") + 17;
- // jspt.setSourceCursor(sourceTextPos); // right after the
- // text
- jspt.translate();
- String translation = jspt.getTranslation().toString();
- // offsets are found using JSPTranslation now
- // int translatedCursorPosition = jspt.getCursorPosition();
- // assertEquals("incorrect cursor position >" +
- // translatedCursorPosition, 519, translatedCursorPosition);
- // assertEquals("translation was incorrect", "testJspString",
- // translation.substring(519, 532));
- int cursorStart = translation.indexOf("out.print(\"\"+\n testJspString") + 14;
- assertEquals("incorrect cursor position >" + cursorStart, 667, cursorStart);
- }
- sm.releaseFromRead();
- }
- }
-
- /**
- * IMPORTANT whoever calls this must releaseFromRead after they are done
- * using it.
- *
- * @param filename
- * @return
- * @throws IOException
- * @throws UnsupportedEncodingException
- */
- protected IStructuredModel getStructuredModelForRead(String filename) throws UnsupportedEncodingException, IOException {
- // create model
- IModelManager modelManager = StructuredModelManager.getModelManager();
- InputStream inStream = getClass().getResourceAsStream(filename);
- IStructuredModel sModel = modelManager.getModelForRead(filename, inStream, null);
- return sModel;
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/JSPTranslationTest.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/JSPTranslationTest.java
deleted file mode 100644
index 0c651db0d..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/JSPTranslationTest.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.contentassist;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jst.jsp.core.internal.domdocument.DOMModelForJSP;
-import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapterFactory;
-import org.eclipse.jst.jsp.ui.tests.other.ScannerUnitTests;
-import org.eclipse.jst.jsp.ui.tests.util.FileUtil;
-import org.eclipse.jst.jsp.ui.tests.util.ProjectUnzipUtility;
-import org.eclipse.osgi.service.datalocation.Location;
-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.xml.core.internal.provisional.document.IDOMModel;
-
-/**
- * This class unit tests the sed JSPTranslation mechanism.
- * That includes JSPTranslationAdapterFactory, JSPTranslationAdapter, and JSPTranslation.
- * It uses the jsp_include_test.jsp, because of the more complicated translation and offsets.
- *
- * @author pavery
- */
-public class JSPTranslationTest extends TestCase {
-
- private ProjectUnzipUtility fProjUtil = null;
- private boolean isSetup = false;
-
- private HashMap fXMLJSPPositions;
-
- public JSPTranslationTest(String name) {
- super(name);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- if (!this.isSetup) {
- doSetup();
- this.isSetup = true;
- }
- }
-
- private void doSetup() throws Exception {
- fProjUtil = new ProjectUnzipUtility();
-
- // root of workspace directory
- Location platformLocation = Platform.getInstanceLocation();
-
- File zipFile = FileUtil.makeFileFor(ProjectUnzipUtility.PROJECT_ZIPS_FOLDER, "includes_tests.zip", ProjectUnzipUtility.PROJECT_ZIPS_FOLDER);
- fProjUtil.unzipAndImport(zipFile, platformLocation.getURL().getPath());
- fProjUtil.initJavaProject("INCLUDES_TESTS");
- }
-
- public void testTranslatePositions() {
-
- IDOMModel model = getIncludeTestModelForRead();
- JSPTranslationAdapter adapter = (JSPTranslationAdapter) model.getDocument().getAdapterFor(IJSPTranslation.class);
- JSPTranslation translation = adapter.getJSPTranslation();
- try {
- HashMap java2jsp = translation.getJava2JspMap();
- assertEquals("java2jsp map size:", 13, java2jsp.size());
-
- HashMap jsp2java = translation.getJsp2JavaMap();
- assertEquals("jsp2java map size:", 3, jsp2java.size());
-
- // some test positions (out.print("" + | );)
-
- // we need to ignore the classname length in our comparisons
- // with java offsets that we get from the translation
- // since it can vary depending on workspace location
- int classnameLength = translation.getClassname().length();
-
- int jspTestPosition = translation.getJspText().indexOf("<%= ") + 4;
- int javaOffset = translation.getJavaOffset(jspTestPosition) - classnameLength;
- assertEquals("JSPTranslation java offset:", 1009, javaOffset);
-
- // (<%= | %>)
- int javaTestPostition = translation.getJavaText().indexOf("out.print(\"\"+\n \n);") + 14;
- // dont' need to worry about classname length here because we are comparing
- // with a position in the JSP document (which doesn't contain classname)
- int jspOffset = translation.getJspOffset(javaTestPostition);
- assertEquals("JSPTranslation jsp offset:", 564, jspOffset);
- }
- finally {
- if (model != null)
- model.releaseFromRead();
- }
- }
-
-
- public void testJSPTranslationText() {
-
- IDOMModel model = getIncludeTestModelForRead();
- ScannerUnitTests.verifyLengths(model, model.getStructuredDocument().get());
- JSPTranslationAdapter adapter = (JSPTranslationAdapter) model.getDocument().getAdapterFor(IJSPTranslation.class);
- JSPTranslation translation = adapter.getJSPTranslation();
- // named as .bin so no line conversion occurs (\n is in use)
- InputStream in = getClass().getResourceAsStream("translated_text.bin");
- String knownTranslationText = loadChars(in);
- try {
- // improvements: may need finer tuned text compares later
- // for different types of translations (includes, xml-jsp in script, attributes, etc...)
- String text = translation.getJavaText();
-
- assertNotNull("JSP translation text:", text);
- assertEquals("JSP translation text does not match expected", knownTranslationText, text);
- }
- finally {
- if (model != null)
- model.releaseFromRead();
- }
- }
-
- public void testJSPTranslationAdapter() {
- IDOMModel model = getIncludeTestModelForRead();
- JSPTranslationAdapter adapter = (JSPTranslationAdapter) model.getDocument().getAdapterFor(IJSPTranslation.class);
- JSPTranslation translation = adapter.getJSPTranslation();
-
- try {
- IJavaProject proj = adapter.getJavaProject();
- assertNotNull("couldn't get java project:" + proj);
-
- translation = adapter.getJSPTranslation();
- assertNotNull("couldn't get translation:", translation);
- }
- finally {
- if (model != null)
- model.releaseFromRead();
- }
- }
-
- /**
- * Makes sure both beans are translated even though they are
- * right next to each other with no space.
- *
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=103004
- */
- public void testUseBeanNoSpace() {
- IFile f = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path("INCLUDES_TESTS/useBean_tester.jsp"));
- DOMModelForJSP sModel = (DOMModelForJSP)getStructuredModelForRead(f);
- try {
- setupAdapterFactory(sModel);
- JSPTranslationAdapter adapter = (JSPTranslationAdapter) sModel.getDocument().getAdapterFor(IJSPTranslation.class);
- JSPTranslation translation = adapter.getJSPTranslation();
- String javaText = translation.getJavaText();
- boolean bean1 = javaText.indexOf("javax.swing.JButton x = null;") != -1;
- boolean bean2 = javaText.indexOf("javax.swing.JButton y = null;") != -1;
- assertTrue(bean1);
- assertTrue(bean2);
- }
- finally {
- if(sModel != null)
- sModel.releaseFromRead();
- }
- }
-
- /**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=86382
- */
- public void testXMLJSPTranslationText() {
- IFile f = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path("INCLUDES_TESTS/xml-jsp/most-tags-xml-jsp.jsp"));
- DOMModelForJSP sModel = (DOMModelForJSP)getStructuredModelForRead(f);
- try {
- setupAdapterFactory(sModel);
- JSPTranslationAdapter adapter = (JSPTranslationAdapter) sModel.getDocument().getAdapterFor(IJSPTranslation.class);
- JSPTranslation translation = adapter.getJSPTranslation();
-
- String javaText = translation.getJavaText();
-
- // named as .bin so no line conversion occurs (\n is in use)
- InputStream in = getClass().getResourceAsStream("translated_xml_jsp.bin");
- String knownTranslationText = loadChars(in);
-
- assertEquals(knownTranslationText, javaText);
- }
- finally {
- if(sModel != null)
- sModel.releaseFromRead();
- }
- }
-
- public void testXMLJSPMapping() {
- IFile f = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path("INCLUDES_TESTS/xml-jsp/most-tags-xml-jsp.jsp"));
- DOMModelForJSP sModel = (DOMModelForJSP)getStructuredModelForRead(f);
- try {
- setupAdapterFactory(sModel);
- JSPTranslationAdapter adapter = (JSPTranslationAdapter) sModel.getDocument().getAdapterFor(IJSPTranslation.class);
- JSPTranslation translation = adapter.getJSPTranslation();
-
- HashMap jsp2java = translation.getJsp2JavaMap();
- Object[] jspRanges = jsp2java.keySet().toArray();
- Position jspPos = null;
- Position javaPos = null;
- for (int i = 0; i < jspRanges.length; i++) {
- jspPos = (Position)jspRanges[i];
- javaPos = (Position)jsp2java.get(jspPos);
- //System.out.println("jsp:" + printPos(jspPos) + " >> java:" + printPos(javaPos));
- checkPosition(jspPos, javaPos);
- }
- }
- finally {
- if(sModel != null)
- sModel.releaseFromRead();
- }
- }
-
- public void testXMLJSPCDATAText() {
- IFile f = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path("INCLUDES_TESTS/cdata/cdata.jsp"));
- DOMModelForJSP sModel = (DOMModelForJSP)getStructuredModelForRead(f);
- try {
- setupAdapterFactory(sModel);
- JSPTranslationAdapter adapter = (JSPTranslationAdapter) sModel.getDocument().getAdapterFor(IJSPTranslation.class);
- JSPTranslation translation = adapter.getJSPTranslation();
-
- String transText = translation.getJavaText();
-
-// named as .bin so no line conversion occurs (\n is in use)
- InputStream in = getClass().getResourceAsStream("translated_xml_jsp_cdata.bin");
- String knownText = loadChars(in);
-
- assertEquals(knownText, transText);
- }
- finally {
- if(sModel != null)
- sModel.releaseFromRead();
- }
- }
-
- private void checkPosition(Position jspPos, Position javaPos) {
-
- HashMap expected = getXMLJSPPositions();
- Object[] keys =expected.keySet().toArray();
- Position expectedJspPos= null;
- Position expectedJavaPos = null;
- boolean found = false;
- for (int i = 0; i < keys.length; i++) {
- expectedJspPos = (Position)keys[i];
- if(jspPos.equals(expectedJspPos)) {
- expectedJavaPos = (Position)expected.get(expectedJspPos);
- found = true;
- }
- }
- assertTrue("expected JSP position missing: " + jspPos, found);
- assertNotNull("no expected java position for jspPos: " + printPos(jspPos), expectedJavaPos);
- assertEquals("unexpected java position was:" + printPos(javaPos) + " but expected:" + printPos(expectedJavaPos), javaPos, expectedJavaPos);
- }
- private String printPos(Position pos) {
- return pos != null ? "[" + pos.offset +":"+ pos.length + "]" : "null";
- }
- private HashMap getXMLJSPPositions() {
- if(fXMLJSPPositions == null) {
- fXMLJSPPositions = new HashMap();
- fXMLJSPPositions.put(new Position(882,52), new Position(920,31));
- fXMLJSPPositions.put(new Position(961,7), new Position(952,7));
- fXMLJSPPositions.put(new Position(1018,14), new Position(89,14));
- fXMLJSPPositions.put(new Position(640,2), new Position(888,2));
- fXMLJSPPositions.put(new Position(406,24), new Position(759,24));
- fXMLJSPPositions.put(new Position(685,19), new Position(897,19));
- fXMLJSPPositions.put(new Position(650,26), new Position(861,26));
- fXMLJSPPositions.put(new Position(563,9), new Position(848,9));
- fXMLJSPPositions.put(new Position(461,23), new Position(784,23));
- fXMLJSPPositions.put(new Position(522,8), new Position(822,8));
- fXMLJSPPositions.put(new Position(323,44), new Position(274,45));
- fXMLJSPPositions.put(new Position(245,43), new Position(229,44));
- }
- return fXMLJSPPositions;
- }
-
- private static String loadChars(InputStream input) {
-
- StringBuffer s = new StringBuffer();
- try {
- int c = -1;
- while ((c = input.read()) >= 0) {
- if (c > 255)
- break;
- s.append((char) c);
- }
- input.close();
- }
- catch (IOException e) {
- System.out.println("An I/O error occured while loading :");
- System.out.println(e);
- }
- return s.toString();
- }
-
- /**
- * add the factory for JSPTranslationAdapter here
- * @param sm
- */
- private void setupAdapterFactory(IStructuredModel sm) {
- JSPTranslationAdapterFactory factory = new JSPTranslationAdapterFactory();
- sm.getFactoryRegistry().addFactory(factory);
- }
-
- /**
- * IMPORTANT - release model (model.releaseFromRead()) after use
- * @param file
- * @return
- */
- private IStructuredModel getStructuredModelForRead(IFile file) {
- try {
- IModelManager modelManager = StructuredModelManager.getModelManager();
- return modelManager.getModelForRead(file);
- }
- catch (IOException ioex) {
- System.out.println("couldn't open file > " + file);
- }
- catch (CoreException e) {
- e.printStackTrace();
- }
- return null;
- }
-
- private IDOMModel getIncludeTestModelForRead() {
-
- IPath jspTestFilePath = new Path("INCLUDES_TESTS/jsp_include_test.jsp");
- IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(jspTestFilePath);
- IDOMModel xmlModel = (IDOMModel) getStructuredModelForRead(file);
- setupAdapterFactory(xmlModel);
- return xmlModel;
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/testfiles/jspInJavascript.jsp b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/testfiles/jspInJavascript.jsp
deleted file mode 100644
index f8c7c028c..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/testfiles/jspInJavascript.jsp
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<%@ page
-language="java"
-contentType="text/html; charset=ISO-8859-1"
-pageEncoding="ISO-8859-1"
-%>
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<META name="GENERATOR" content="IBM WebSphere Studio">
-<TITLE>pmr.jsp</TITLE>
-
-<%!String testJspString = "testJspString"; %>
-<script>
-
-var test = <%= testJspString %>;
-
-</script>
-
-
-
-</HEAD>
-<BODY>
-<% %>
-<P>Place jspInJavascript.jsp's content here.</P>
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/translated_text.bin b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/translated_text.bin
deleted file mode 100644
index d70436349..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/translated_text.bin
+++ /dev/null
@@ -1,37 +0,0 @@
-import javax.servlet.*;
-import javax.servlet.http.*;
-import javax.servlet.jsp.*;
-
-public class __2F_INCLUDES_TESTS_2F_jsp_include_test_2E_jsp extends javax.servlet.http.HttpServlet{
- String argh = "argh";
-
- public String globalIncludedString = "included";
-
- protected String with_space = "withspace";
-
-public void _jspService(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
- throws java.io.IOException, javax.servlet.ServletException {
-javax.servlet.jsp.PageContext pageContext = null;
-javax.servlet.http.HttpSession session = null;
-javax.servlet.ServletContext application = null;
-javax.servlet.ServletConfig config = null;
-javax.servlet.jsp.JspWriter out = null;
-Object page = null;
-
-try {
- String localIncludedString = globalIncludedString;
-for(int i=0; i<5; i++) {
-out.print(""+
-i
-);
-}
-javax.swing.JButton BEAN_includedBean = new javax.swing.JButton();
- int include_include_int = 5;
-javax.swing.JButton includesUseBean = new javax.swing.JButton();
-{ // <gifts:gift>
-} // </gifts:gift>
-out.print(""+
-
-);
- } catch (java.lang.Exception e) {}
-}} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/translated_xml_jsp.bin b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/translated_xml_jsp.bin
deleted file mode 100644
index 4e46230a6..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/translated_xml_jsp.bin
+++ /dev/null
@@ -1,33 +0,0 @@
-import javax.servlet.*;
-import javax.servlet.http.*;
-import javax.servlet.jsp.*;
-
-import java.util.List;
-public class __2F_INCLUDES_TESTS_2F_xml_2D_jsp_2F_most_2D_tags_2D_xml_2D_jsp_2E_jsp extends javax.servlet.http.HttpServlet{
-public String myFunc() { return "myfunc"; }
-
-public String myFunc2() { return "myfunc"; }
-
-public void _jspService(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
- throws java.io.IOException, javax.servlet.ServletException {
-javax.servlet.jsp.PageContext pageContext = null;
-javax.servlet.http.HttpSession session = null;
-javax.servlet.ServletContext application = null;
-javax.servlet.ServletConfig config = null;
-javax.servlet.jsp.JspWriter out = null;
-Object page = null;
-
-try {
-String consec1 = "test";
-String consec2 = "two";
-out.print(""+
-myFunc()
-);
-out.print(""+
-myFunc2()
-);
-javax.swing.AbstractButton jb = new javax.swing.JButton();
-String includedString = "incd";
- jb.
- } catch (java.lang.Exception e) {}
-}} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/translated_xml_jsp_cdata.bin b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/translated_xml_jsp_cdata.bin
deleted file mode 100644
index e045acc74..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/translated_xml_jsp_cdata.bin
+++ /dev/null
@@ -1,37 +0,0 @@
-import javax.servlet.*;
-import javax.servlet.http.*;
-import javax.servlet.jsp.*;
-
-public class __2F_INCLUDES_TESTS_2F_cdata_2F_cdata_2E_jsp extends javax.servlet.http.HttpServlet{
-public void _jspService(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
- throws java.io.IOException, javax.servlet.ServletException {
-javax.servlet.jsp.PageContext pageContext = null;
-javax.servlet.http.HttpSession session = null;
-javax.servlet.ServletContext application = null;
-javax.servlet.ServletConfig config = null;
-javax.servlet.jsp.JspWriter out = null;
-Object page = null;
-
-try {
-
-int a = 1;
-if (a
-<
- 2) {
- out.println("x");
-}
-
-String test = "";
-
-
-
-int a = 1;
-if (a < 2) {
- out.println("x");
-}
-
-
-
- test.toUpperCase();
- } catch (java.lang.Exception e) {}
-}} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentdescription/TestContentDescription.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentdescription/TestContentDescription.java
deleted file mode 100644
index ad4d1b481..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentdescription/TestContentDescription.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.contentdescription;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.IContentDescriptionForJSP;
-import org.eclipse.jst.jsp.ui.tests.document.UnzippedProjectTester;
-
-/**
- * Tests that our ContentDescriberForJSP is working as expected,
- * We check that the content description for a given input stream has all
- * of the appropriate properties.
- * (through the Platform content type framework)
- */
-public class TestContentDescription extends UnzippedProjectTester {
-
- public void testNoXMLPIWithJSPSyntax() {
- HashMap expectedProperties = new HashMap();
- expectedProperties.put(IContentDescriptionForJSP.CONTENT_TYPE_ATTRIBUTE, "text/xml");
- expectedProperties.put(IContentDescription.CHARSET, "UTF-8");
- doTestContentDescription("/content-description/PurchaseOrder-no-XMLPI-jsp-syntax.jsp", expectedProperties);
- }
-
- public void testWithXMLPIWithJSPSyntax() {
- HashMap expectedProperties = new HashMap();
- expectedProperties.put(IContentDescriptionForJSP.CONTENT_TYPE_ATTRIBUTE, "text/xml");
- expectedProperties.put(IContentDescription.CHARSET, "UTF-8");
- doTestContentDescription("/content-description/PurchaseOrder-with-XMLPI-jsp-syntax.jsp", expectedProperties);
- }
-
- public void testWithXMLPIWithXMLSyntax() {
- HashMap expectedProperties = new HashMap();
- expectedProperties.put(IContentDescriptionForJSP.CONTENT_TYPE_ATTRIBUTE, "text/xml");
- expectedProperties.put(IContentDescription.CHARSET, "UTF-8");
- doTestContentDescription("/content-description/PurchaseOrder-with-XMLPI-xml-syntax.jsp", expectedProperties);
- }
-
- public void testJSPWithHTMLOutput() {
- HashMap expectedProperties = new HashMap();
- expectedProperties.put(IContentDescriptionForJSP.CONTENT_TYPE_ATTRIBUTE, "text/html");
- doTestContentDescription("/content-description/html.jsp", expectedProperties);
- }
-
- public void testJSPWithXHTMLOutput() {
- HashMap expectedProperties = new HashMap();
- expectedProperties.put(IContentDescriptionForJSP.CONTENT_TYPE_ATTRIBUTE, "text/xhtml");
- doTestContentDescription("/content-description/xhtml.jsp", expectedProperties);
- }
-
- public void testJSPWithXMLOutput() {
- HashMap expectedProperties = new HashMap();
- expectedProperties.put(IContentDescriptionForJSP.CONTENT_TYPE_ATTRIBUTE, "text/xml");
- doTestContentDescription("/content-description/xml.jsp", expectedProperties);
- }
-
- private void doTestContentDescription(String filePath, HashMap expectedProperties) {
- IContentDescription desc = getContentDescription(filePath);
- assertNotNull("couldn't get IContentDescription for file:[" + filePath + "]", desc);
- Object[] keys = expectedProperties.keySet().toArray();
- for (int i = 0; i < keys.length; i++) {
-
- Object expected = expectedProperties.get(keys[i]);
- Object detected = desc.getProperty( (QualifiedName)keys[i] );
- assertEquals("unexpected property value", expected, detected);
- }
- }
-
- private IContentDescription getContentDescription(String filePath) {
- if(filePath == null)
- return null;
-
- InputStream in = null;
- try {
- // workspace file
- IFile wsFile = FileBuffers.getWorkspaceFileAtLocation(new Path(filePath));
- if(wsFile != null && wsFile.exists()) {
- in = wsFile.getContents();
- }
- else {
- // external file
- File sFile = FileBuffers.getSystemFileAtLocation(new Path(filePath));
- if(sFile !=null && sFile.exists())
- in = new FileInputStream(sFile);
- }
- }
- catch (CoreException e) {
- Logger.logException(e);
- }
- catch (FileNotFoundException e) {
- Logger.logException(e);
- }
-
- assertNotNull(in);
-
- return getContentDescription(in);
- }
-
- /**
- * Returns content description for an input stream
- * Assumes it's JSP content.
- * Closes the input stream when finished.
- *
- * @param in
- * @return the IContentDescription for in
- */
- private IContentDescription getContentDescription(InputStream in) {
-
- if(in == null)
- return null;
-
- IContentDescription desc = null;
- try {
-
- IContentType contentTypeJSP = Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSP);
- desc = contentTypeJSP.getDescriptionFor(in, IContentDescription.ALL);
- }
- catch (IOException e) {
- Logger.logException(e);
- }
- finally {
- if(in != null) {
- try {
- in.close();
- }
- catch (IOException e) {
- Logger.logException(e);
- }
- }
- }
- return desc;
- }
-
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/document/FileBufferDocumentTester.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/document/FileBufferDocumentTester.java
deleted file mode 100644
index b12a7c65b..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/document/FileBufferDocumentTester.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.document;
-
-import java.io.IOException;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-import org.eclipse.core.filebuffers.ITextFileBufferManager;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentExtension3;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jst.jsp.core.internal.text.StructuredTextPartitionerForJSP;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
-import org.eclipse.wst.sse.core.internal.util.Utilities;
-
-
-public class FileBufferDocumentTester extends UnzippedProjectTester {
-
- private void doTestCreate(String filePath, Class expectedDocumentClass, Class expectedPartioner) throws CoreException, IOException {
- IFile file = (IFile) fTestProject.findMember(filePath);
- assertNotNull("Test Case in error. Could not find file " + filePath, file);
- IPath locationPath = file.getLocation();
- ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager();
- bufferManager.connect(locationPath, null);
- ITextFileBuffer buffer = bufferManager.getTextFileBuffer(locationPath);
- IDocument document = buffer.getDocument();
- assertNotNull(document);
- assertTrue("wrong class of document", expectedDocumentClass.isInstance(document));
- IDocumentPartitioner setupPartitioner = null;
- if (Utilities.contains(expectedDocumentClass.getInterfaces(), IDocumentExtension3.class)) {
- setupPartitioner = ((IDocumentExtension3) document).getDocumentPartitioner(IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING);
- }
- else {
- setupPartitioner = document.getDocumentPartitioner();
- }
- assertTrue("wrong partitioner in document.", expectedPartioner.isInstance(setupPartitioner));
- bufferManager.disconnect(locationPath, null);
-
-// doTestCreateWithFacade(file, expectedDocumentClass, expectedPartioner);
-
- }
-
-
-
-/*
-
- public void testFile103() throws CoreException, IOException {
- doTestCreate("testfiles/xml/EmptyFile.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile104() throws CoreException, IOException {
- doTestCreate("testfiles/xml/eucjp.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile105() throws CoreException, IOException {
- doTestCreate("testfiles/xml/IllformedNormalNonDefault.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile106() throws CoreException, IOException {
- doTestCreate("testfiles/xml/MalformedNoEncoding.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile107() throws CoreException, IOException {
- doTestCreate("testfiles/xml/MalformedNoEncoding.xsl", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile108() throws CoreException, IOException {
- doTestCreate("testfiles/xml/NoEncoding.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile109() throws CoreException, IOException {
- doTestCreate("testfiles/xml/NormalNonDefault.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile110() throws CoreException, IOException {
- doTestCreate("testfiles/xml/shiftjis.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile111() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testExtraJunk.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile112() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testExtraValidStuff.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile113() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testIllFormed.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile114() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testIllFormed2.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile115() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testIllFormed3.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile116() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testIllFormed4.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile117() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testMultiLine.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile118() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testNoEncodingValue.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile119() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testNormalCase.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile120() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testNoXMLDecl.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile121() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testNoXMLDeclAtFirst.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile122() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testNoXMLDeclInLargeFile.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile123() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testUTF16.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile124() throws CoreException, IOException {
- doTestCreate("testfiles/xml/UTF16LEAtStartOfLargeFile.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile125() throws CoreException, IOException {
- doTestCreate("testfiles/xml/utf16UnicodeStreamWithNoEncodingInHeader2.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile126() throws CoreException, IOException {
- doTestCreate("testfiles/xml/utf16UnicodeStreamWithNoEncodingInHeaderBE.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile127() throws CoreException, IOException {
- doTestCreate("testfiles/xml/utf16WithJapaneseChars.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testFile128() throws CoreException, IOException {
- doTestCreate("testfiles/xml/UTF8With3ByteBOM.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testNonExistentXML() throws CoreException {
- doTestCreateCreateEmpty("testfiles/xml/testnonexistent.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testSimpleCase() throws CoreException, IOException {
- doTestCreate("testfiles/xml/testNormalCase.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
-
- public void testFile1() throws CoreException, IOException {
- doTestCreate("testfiles/css/emptyFile.css", BasicStructuredDocument.class, StructuredTextPartitionerForCSS.class);
- }
-
-*/
-
- public void testFile70() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/MalformedNoEncodingXSL.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile81() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testBrokenLine.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile82() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testDefaultEncoding.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile83() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testDefaultEncodingWithJunk.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile84() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testExtraJunk.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile85() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testExtraValidStuff.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile86() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testIllFormed.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile87() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testIllFormed2.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile88() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testNoEncodingValue.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile89() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testNoPageDirective.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile90() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testNoPageDirectiveAtFirst.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile91() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testNoPageDirectiveInLargeFile.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile92() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testNormalCase.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile93() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/testUTF16.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile94() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/utf16UnicodeStreamWithNoEncodingInHeader2.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile95() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/utf16UnicodeStreamWithNoEncodingInHeaderBE.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile96() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/utf16WithJapaneseChars.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile97() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/UTF8With3ByteBOM.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile98() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/WellFormedNormalNonDefault.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile99() throws CoreException, IOException {
- doTestCreate("testfiles/regressionTestFiles/defect223365/SelColBeanRow12ResultsForm.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile100() throws CoreException, IOException {
- doTestCreate("testfiles/regressionTestFiles/defect223365/SelColBeanRow12ResultsFormB.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile101() throws CoreException, IOException {
- doTestCreate("testfiles/regressionTestFiles/defect224293/testshiftjisXmlSyntax.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile102() throws CoreException, IOException {
- doTestCreate("testfiles/regressionTestFiles/defect229667/audi.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
-
- public void testFile71() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/noEncoding.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile72() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/NoEncodinginXMLDecl.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile73() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/nomalDirectiveCase.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile74() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/nomalDirectiveCaseNoEncoding.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile75() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/nomalDirectiveCaseUsingCharset.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile76() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/nomalDirectiveCaseUsingXMLSyntax.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile77() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/NormalNonDefault.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile78() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/NormalNonDefaultWithXMLDecl.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile79() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/NormalPageCaseNonDefault.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testFile80() throws CoreException, IOException {
- doTestCreate("testfiles/jsp/SelColBeanRow12ResultsForm.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/document/UnzippedProjectTester.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/document/UnzippedProjectTester.java
deleted file mode 100644
index 08f1fddb7..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/document/UnzippedProjectTester.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package org.eclipse.jst.jsp.ui.tests.document;
-
-import java.io.File;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.jsp.ui.tests.JSPUITestsPlugin;
-import org.eclipse.jst.jsp.ui.tests.util.ProjectUnzipUtility;
-
-/**
- * @author pavery
- */
-public class UnzippedProjectTester extends TestCase {
-
- protected static IProject fTestProject;
- private static boolean fTestProjectInitialized;
- private static int nSetups = 0;
- private static final String TEST_PROJECT_NAME = "org.eclipse.wst.sse.core.internal.encoding.newtests";
-
- protected void setUp() throws Exception {
- super.setUp();
- nSetups++;
- if (!fTestProjectInitialized) {
- getAndCreateProject();
- // unzip files to the root of workspace directory
- String destinationProjectString = fTestProject.getLocation().toOSString();
- String destinationFolder = destinationProjectString + "/";
- // this zip file is sitting in the "root" of test plugin
- File zipFile = JSPUITestsPlugin.getTestFile("testfiles.zip");
- ProjectUnzipUtility projUtil = new ProjectUnzipUtility();
- projUtil.unzipAndImport(zipFile, destinationFolder);
- projUtil.initJavaProject(TEST_PROJECT_NAME);
- fTestProject.refreshLocal(IResource.DEPTH_INFINITE, null);
- fTestProjectInitialized = true;
- }
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- nSetups--;
- if (nSetups == 0) {
- if (!DEBUG) {
- // Display display = PlatformUI.getWorkbench().getDisplay();
- // display.asyncExec(new Runnable() {
- // public void run() {
- // ProjectUnzipUtility projUtil = new ProjectUnzipUtility();
- // IProject proj = fTestProject;
- // fTestProject = null;
- // try {
- // projUtil.deleteProject(proj);
- // } catch (Exception e) {
- // e.printStackTrace();
- // }
- // }
- // });
- }
- }
- }
-
- private static final boolean DEBUG = false;
-
- private static void getAndCreateProject() throws CoreException {
- //TestsPlugin testsPlugin = (TestsPlugin)
- // Platform.getPlugin("org.eclipse.wst.sse.core.internal.encoding.tests");
- IWorkspace workspace = getWorkspace();
- IWorkspaceRoot root = workspace.getRoot();
- fTestProject = root.getProject(TEST_PROJECT_NAME);
- // this form creates project as "linked" back to 'fileRoot'
- //createProject(testProject, new Path(fileRoot), null);
- createProject(fTestProject, null, null);
- fTestProject.refreshLocal(IResource.DEPTH_INFINITE, null);
- assertTrue(fTestProject.exists());
- // IContainer dotestFiles = testProject.getFolder("dotestFiles");
- // assertTrue(dotestFiles.exists());
- // IResource[] allFolders = dotestFiles.members();
- // assertNotNull(allFolders);
- }
-
- private static void createProject(IProject project, IPath locationPath, IProgressMonitor monitor) throws CoreException {
- if (monitor == null) {
- monitor = new NullProgressMonitor();
- }
- monitor.beginTask("creating test project", 10);
- // create the project
- try {
- if (!project.exists()) {
- IProjectDescription desc = project.getWorkspace().newProjectDescription(project.getName());
- if (Platform.getLocation().equals(locationPath)) {
- locationPath = null;
- }
- desc.setLocation(locationPath);
- project.create(desc, monitor);
- monitor = null;
- }
- if (!project.isOpen()) {
- project.open(monitor);
- monitor = null;
- }
- }
- finally {
- if (monitor != null) {
- monitor.done();
- }
- }
- }
-
- /**
- * Returns the workspace instance.
- */
- public static IWorkspace getWorkspace() {
- return ResourcesPlugin.getWorkspace();
- }
-}
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/examples/CreatingJSPExpression.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/examples/CreatingJSPExpression.java
deleted file mode 100644
index f348a8b14..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/examples/CreatingJSPExpression.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.examples;
-
-import java.io.IOException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-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.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.format.NodeFormatter;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Text;
-
-public class CreatingJSPExpression extends TestCase {
-
- /**
- *
- */
- public CreatingJSPExpression() {
- super();
- }
-
- /**
- * @param name
- */
- public CreatingJSPExpression(String name) {
- super(name);
- }
-
- public void testCreateJSPExpression() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForJSP.ContentTypeID_JSP);
- assertTrue("model could not be created!", model != null);
-
- // Now, assigning use a page directive, but leaving embedded type the same as default
- model.getStructuredDocument().setText(this, "<%@ page contentType=\"text/html\" language=\"java\" %>");
-
- Document doc = ((IDOMModel) model).getDocument();
-
- Element jspexpression = doc.createElement("jsp:expression");
- ((IDOMElement) jspexpression).setJSPTag(true);
- doc.appendChild(jspexpression);
- Text javacode = doc.createTextNode(" // some java code here; if (x <0) return new String(\"0\") else return new String (\"1\"); ");
- jspexpression.appendChild(javacode);
-
-
- Text cdatasection = doc.createCDATASection(" // some cdata java code here; if (x <0) return new String(\"0\") else return new String (\"1\"); ");
- doc.appendChild(cdatasection);
-
- // format's not needed, just prettier ... not sure why
- // it won't work right on whole document.
- new NodeFormatter().format(jspexpression);
- new NodeFormatter().format(cdatasection);
- System.out.println("document text: ");
- System.out.println(model.getStructuredDocument().get());
- }
-
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/model/TestModelsFromFiles.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/model/TestModelsFromFiles.java
deleted file mode 100644
index 6e9e4f914..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/model/TestModelsFromFiles.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.model;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.IDocumentExtension3;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jst.jsp.core.internal.text.StructuredTextPartitionerForJSP;
-import org.eclipse.jst.jsp.ui.tests.document.UnzippedProjectTester;
-import org.eclipse.wst.html.core.internal.text.StructuredTextPartitionerForHTML;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.exceptions.ResourceAlreadyExists;
-import org.eclipse.wst.sse.core.internal.provisional.exceptions.ResourceInUse;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
-import org.eclipse.wst.sse.core.internal.util.Utilities;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-import org.eclipse.wst.xml.core.internal.text.rules.StructuredTextPartitionerForXML;
-
-
-public class TestModelsFromFiles extends UnzippedProjectTester {
- public void testNonExistentXML() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestCreate("testfiles/xml/testnonexistent.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testNonExistentXMLDocument() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestNonExistentDocument("testfiles/xml/testnonexistent.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testNonExistentXMLModel() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestCreateModelWithNonExistIFile("testfiles/xml/testnonexistent.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testNonExistentJSP() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestCreate("testfiles/jsp/testnonexistent.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testNonExistentJSPDocument() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestNonExistentDocument("testfiles/jsp/testnonexistent.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testNonExistentJSPModel() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestCreateModelWithNonExistIFile("testfiles/jsp/testnonexistent.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testSimpleCase() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestNotEmpty("testfiles/xml/testNormalCase.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testSimpleDocumentCaseXML() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestNotEmptyDocument("testfiles/xml/testNormalCase.xml", BasicStructuredDocument.class, StructuredTextPartitionerForXML.class);
- }
-
- public void testSimpleDocumentCaseJSP() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestNotEmptyDocument("testfiles/regressionTestFiles/defect223365/SelColBeanRow12ResultsForm.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testComplexCase() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestNotEmpty("testfiles/regressionTestFiles/defect223365/SelColBeanRow12ResultsForm.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testReload() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestReload("testfiles/regressionTestFiles/defect223365/SelColBeanRow12ResultsForm.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testJSPWithXMLOutput() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestReload("testfiles/jsp/jsp-xml-output.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testXHTMLTransitional1() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestCreate("testfiles/xhtml/testx.html", BasicStructuredDocument.class, StructuredTextPartitionerForHTML.class);
- }
-
- public void testXHTMLTransitional2() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestCreate("testfiles/xhtml/testx.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- public void testXHTMLTransitional3() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestCreate("testfiles/xhtml/testx.xhtml", BasicStructuredDocument.class, StructuredTextPartitionerForHTML.class);
- }
-
- public void testHTMLTransitional1() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestCreate("testfiles/html/testh.html", BasicStructuredDocument.class, StructuredTextPartitionerForHTML.class);
- }
-
- public void testHTMLTransitional2() throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- doTestCreate("testfiles/html/testh.jsp", BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class);
- }
-
- /*
- * TODO: these test files are missing, for some reason when running on
- * build machine ... need to re-construct public void testNearEmptyJSP()
- * throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- * doTestNotEmpty("testfiles/jsp/nearEmpty.jsp",
- * BasicStructuredDocument.class, StructuredTextPartitionerForJSP.class); }
- *
- * public void testNearEmptyXML() throws ResourceAlreadyExists,
- * ResourceInUse, IOException, CoreException {
- * doTestNotEmpty("testfiles/xml/nearEmpty.xml",
- * BasicStructuredDocument.class, StructuredTextPartitionerForXML.class); }
- *
- * public void testNearEmptyHTML() throws ResourceAlreadyExists,
- * ResourceInUse, IOException, CoreException {
- * doTestNotEmpty("testfiles/html/nearEmpty.html",
- * BasicStructuredDocument.class, StructuredTextPartitionerForHTML.class); }
- */
- private void doTestNotEmpty(String filePath, Class expectedDocumentClass, Class expectedPartioner) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- String contents = doTestCreate(filePath, expectedDocumentClass, expectedPartioner);
- assertNotNull("contents were null", contents);
- assertTrue("contents were empty", contents.length() > 0);
-
- }
-
- /**
- * @param string
- * @param class1
- * @param class2
- * @throws CoreException
- * @throws IOException
- * @throws ResourceInUse
- * @throws ResourceAlreadyExists
- */
- private void doTestNotEmptyDocument(String filePath, Class expectedDocumentClass, Class expectedPartioner) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- String contents = null;
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IFile file = (IFile) fTestProject.findMember(filePath);
- if (file == null) {
- file = fTestProject.getFile(filePath);
- }
- IStructuredDocument document = modelManager.createStructuredDocumentFor(file);
- assertNotNull(document);
- assertTrue("wrong class of document", expectedDocumentClass.isInstance(document));
- IDocumentPartitioner setupPartitioner = null;
- if (Utilities.contains(expectedDocumentClass.getInterfaces(), IDocumentExtension3.class)) {
- setupPartitioner = ((IDocumentExtension3) document).getDocumentPartitioner(IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING);
- }
- else {
- setupPartitioner = document.getDocumentPartitioner();
- }
- assertTrue("wrong partitioner in document.", expectedPartioner.isInstance(setupPartitioner));
- contents = document.get();
- assertNotNull("contents were null", contents);
- assertTrue("contents were empty", contents.length() > 0);
-
- }
-
- private void doTestNonExistentDocument(String filePath, Class expectedDocumentClass, Class expectedPartioner) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- String contents = null;
- boolean expectedExceptionCaught = false;
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IFile file = (IFile) fTestProject.findMember(filePath);
- if (file == null) {
- file = fTestProject.getFile(filePath);
- }
- IStructuredDocument document = null;
- try {
- document = modelManager.createStructuredDocumentFor(file);
- }
- catch (FileNotFoundException e) {
- expectedExceptionCaught = true;
- }
-
- if (expectedExceptionCaught) {
- document = modelManager.createNewStructuredDocumentFor(file);
- assertNotNull(document);
- assertTrue("wrong class of document", expectedDocumentClass.isInstance(document));
- IDocumentPartitioner setupPartitioner = null;
- if (Utilities.contains(expectedDocumentClass.getInterfaces(), IDocumentExtension3.class)) {
- setupPartitioner = ((IDocumentExtension3) document).getDocumentPartitioner(IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING);
- }
- else {
- setupPartitioner = document.getDocumentPartitioner();
- }
- assertTrue("wrong partitioner in document.", expectedPartioner.isInstance(setupPartitioner));
- contents = document.get();
- assertNotNull("contents were null", contents);
- assertTrue("contents were *not* empty as expected", contents.length() == 0);
- }
- else {
- assertTrue("FileNotFound exception was *not* thrown as expected", false);
- }
-
- }
-
- /**
- * @param string
- * @param class1
- * @param class2
- * @throws CoreException
- * @throws IOException
- * @throws ResourceInUse
- * @throws ResourceAlreadyExists
- */
- private void doTestReload(String filePath, Class expectedDocumentClass, Class expectedPartioner) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IFile file = (IFile) fTestProject.findMember(filePath);
- if (file == null) {
- file = fTestProject.getFile(filePath);
- }
- IStructuredModel model = modelManager.getNewModelForEdit(file, true);
- try {
- assertNotNull(model);
- IStructuredDocument document = model.getStructuredDocument();
- assertNotNull(document);
- assertTrue("wrong class of document", expectedDocumentClass.isInstance(document));
- IDocumentPartitioner setupPartitioner = null;
- if (Utilities.contains(expectedDocumentClass.getInterfaces(), IDocumentExtension3.class)) {
- setupPartitioner = ((IDocumentExtension3) document).getDocumentPartitioner(IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING);
- }
- else {
- setupPartitioner = document.getDocumentPartitioner();
- }
- assertTrue("wrong partitioner in document.", expectedPartioner.isInstance(setupPartitioner));
-
- InputStream inStream = null;
- try {
- inStream = file.getContents();
- model.reload(inStream);
- assertNotNull(model);
- IStructuredDocument documentReloaded = model.getStructuredDocument();
- // note: NOT same instance of document
- // FIXME: this test has to be changed back, once the reload
- // API is
- // fixed to work with different document.
- // assertFalse(document == documentReloaded);
- assertTrue(document == documentReloaded);
- }
- finally {
- if (inStream != null) {
- inStream.close();
- }
- }
- }
- finally {
- if (model != null)
- model.releaseFromEdit();
- }
- }
-
- /**
- * @param string
- * @param class1
- * @param class2
- * @throws CoreException
- * @throws IOException
- * @throws ResourceInUse
- * @throws ResourceAlreadyExists
- */
- private String doTestCreate(String filePath, Class expectedDocumentClass, Class expectedPartioner) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- String contents = null;
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IFile file = (IFile) fTestProject.findMember(filePath);
- // file will be null if the resource does not exist
- if (file == null) {
- file = fTestProject.getFile(filePath);
- }
- IStructuredModel model = modelManager.getNewModelForEdit(file, true);
- try {
- assertNotNull(model);
- IStructuredDocument document = model.getStructuredDocument();
- assertNotNull(document);
- contents = document.get();
- assertTrue("wrong class of document", expectedDocumentClass.isInstance(document));
- IDocumentPartitioner setupPartitioner = null;
- if (Utilities.contains(expectedDocumentClass.getInterfaces(), IDocumentExtension3.class)) {
- setupPartitioner = ((IDocumentExtension3) document).getDocumentPartitioner(IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING);
- }
- else {
- setupPartitioner = document.getDocumentPartitioner();
- }
- assertTrue("wrong partitioner in document.", expectedPartioner.isInstance(setupPartitioner));
-
- testClone(model);
-
- }
- finally {
- if (model != null)
- model.releaseFromEdit();
- }
- return contents;
- }
-
- private void testClone(IStructuredModel structuredModel) throws IOException {
- IDOMDocument document = ((IDOMModel) structuredModel).getDocument();
- INodeNotifier notifier = document;
- ModelQueryAdapter modelQueryAdapter = (ModelQueryAdapter) notifier.getAdapterFor(ModelQueryAdapter.class);
- assertNotNull("initial modelQueryAdapter should not be null", modelQueryAdapter);
-
- IStructuredModel newModel = structuredModel.newInstance();
- IDOMDocument newDocument = ((IDOMModel) newModel).getDocument();
- INodeNotifier newNotifier = newDocument;
- ModelQueryAdapter result = (ModelQueryAdapter) newNotifier.getAdapterFor(ModelQueryAdapter.class);
- assertNotNull("newInstance modelQueryAdapter should not be null", result);
-
-
- }
-
- /**
- * @param string
- * @param class1
- * @param class2
- * @throws CoreException
- * @throws IOException
- * @throws ResourceInUse
- * @throws ResourceAlreadyExists
- */
- private String doTestCreateModelWithNonExistIFile(String filePath, Class expectedDocumentClass, Class expectedPartioner) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
- String contents = null;
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IFile file = (IFile) fTestProject.findMember(filePath);
- // file will be null if the resource does not exist
- if (file == null) {
- file = fTestProject.getFile(filePath);
- }
- IStructuredModel model = modelManager.getNewModelForEdit(file, false);
- try {
- assertNotNull(model);
- IStructuredDocument document = model.getStructuredDocument();
- assertNotNull(document);
- contents = document.get();
- assertTrue("wrong class of document", expectedDocumentClass.isInstance(document));
- IDocumentPartitioner setupPartitioner = null;
- if (Utilities.contains(expectedDocumentClass.getInterfaces(), IDocumentExtension3.class)) {
- setupPartitioner = ((IDocumentExtension3) document).getDocumentPartitioner(IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING);
- }
- else {
- setupPartitioner = document.getDocumentPartitioner();
- }
- assertTrue("wrong partitioner in document.", expectedPartioner.isInstance(setupPartitioner));
- }
- finally {
- if (model != null)
- model.releaseFromEdit();
- }
- return contents;
- }
-
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/modelquery/ModelQueryTester.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/modelquery/ModelQueryTester.java
deleted file mode 100644
index e1aad84dd..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/modelquery/ModelQueryTester.java
+++ /dev/null
@@ -1,390 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.modelquery;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import junit.textui.TestRunner;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.tests.JSPUITestsPlugin;
-import org.eclipse.jst.jsp.ui.tests.Logger;
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryProvider;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistry;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * @author pavery
- */
-public class ModelQueryTester extends TestCase {
-
- private final boolean testShippedDTDLookup = false;
-
- // Our Structured Model, which should always be an XMLModel (or subclass)
- protected IDOMModel fModel = null;
-
- protected ModelQuery fModelQuery = null;
-
- public ModelQueryTester(String name) {
- super(name);
- }
-
- protected static Test suite() {
- return new TestSuite(ModelQueryTester.class);
- }
-
- public static void main(java.lang.String[] args) {
- if (args == null || args.length == 0) {
- runAll();
- }
- else if (args.length == 1) {
- String methodToRun = args[0].trim();
- runOne(methodToRun);
- }
-
- }
-
- protected static void runAll() {
- TestRunner.run(suite());
-
- }
-
- protected static void runOne(String methodName) {
- TestSuite testSuite = new TestSuite();
- TestCase test = new ModelQueryTester(methodName);
- testSuite.addTest(test);
- junit.textui.TestRunner.run(testSuite);
- }
-
- /**
- * Create an empty HTML model
- */
- protected void setUpHTML() {
- fModel = (IDOMModel) createModel(ContentTypeIdForHTML.ContentTypeID_HTML);
- initVars();
- }
-
- /**
- * Create an empty XML model
- */
- protected void setUpXML() {
- fModel = (IDOMModel) createModel(ContentTypeIdForXML.ContentTypeID_XML);
- initVars();
- }
-
-
- /**
- * Initialize local fields for this test
- */
- protected void initVars() {
- fModelQuery = ModelQueryUtil.getModelQuery(fModel.getDocument());
-
-
- }
-
- /**
- * Test the HTML BODY Element for the "bgcolor" attribute declaration
- */
- public void testBodyElement() {
- setUpHTML();
- fModel.getStructuredDocument().set("<html><body bgcolor=\"#ffffff\"><form method=\"post\"></form></body></html>"); // set
- // text
-
- // TEST getting a CMElementDeclaration
- Element bodyElement = (Element) fModel.getIndexedRegion(7); // node at
- // offset7--should
- // be
- // <body>
- CMElementDeclaration bodyDecl = fModelQuery.getCMElementDeclaration(bodyElement);
-
- int contentType = bodyDecl.getContentType();
- assertTrue("CMElementDeclaration CONTENT TYPE INCORRECT FOR BODY", (contentType == CMElementDeclaration.MIXED));
-
- // get permissible attrs
- CMNamedNodeMap map = bodyDecl.getAttributes();
- assertTrue("ATTRIBUTES FROM ELEMENT DECLARATION == NULL", (map != null));
- Vector allowed = new Vector();
- for (int i = 0; i < map.getLength(); i++) {
- CMAttributeDeclaration node = (CMAttributeDeclaration) map.item(i);
- String name = node.getNodeName();
- allowed.add(name);
- if (name.equalsIgnoreCase("bgcolor")) {
- assertTrue("GOT INCORRECT ATTRIBUTE NODE TYPE", (node.getNodeType() == CMNode.ATTRIBUTE_DECLARATION));
-
- CMDataType attrType = node.getAttrType();
- // System.out.println("attribute type > " + attrType);
- assertTrue("COULD NOT GET ATTRIBUTE TYPE", (attrType != null));
- assertTrue("COULDN'T GET IMPLIED VALUE KIND", (attrType.getImpliedValueKind() == CMDataType.IMPLIED_VALUE_NONE));
- }
- }
- }
-
- /**
- * Test the HTML HTML Element for its declared children
- */
- public void testHtmlChildren() {
- setUpHTML();
- fModel.getStructuredDocument().set("<html></html>"); // set text
- Element htmlElement = fModel.getDocument().getDocumentElement();
- CMElementDeclaration htmlDecl = fModelQuery.getCMElementDeclaration(htmlElement);
-
- // HTML's children are within a group
- CMContent contents = htmlDecl.getContent();
-
- assertTrue("content type is not a group", contents.getNodeType() == CMNode.GROUP);
-
- CMGroup group = (CMGroup) contents;
- int operator = group.getOperator();
- CMNodeList childList = group.getChildNodes();
- int max = contents.getMaxOccur();
- int min = contents.getMinOccur();
-
- // the group should be allowed once, with a sequence whose first entry
- // is the declaration for HEAD
- assertTrue("occurrance of group", min == 1 && max == 1);
- assertTrue("relationship in group", operator == CMGroup.SEQUENCE);
- assertTrue("content descriptor type, position 0", contents.getNodeType() == CMNode.GROUP);
- assertTrue("child order (HEAD first)", childList.item(0).getNodeName().equalsIgnoreCase(HTML40Namespace.ElementName.HEAD));
-
- assertTrue("content descriptor type, position 1", childList.item(1).getNodeType() == CMNode.GROUP);
- // The second child should be a group as well, containing BODY and
- // FRAMESET with an
- // operator of CMGroup.CHOICE
- assertTrue("content descriptor type, position 1 - relationship of group", ((CMGroup) childList.item(1)).getOperator() == CMGroup.CHOICE);
- }
-
- public void testFormMethodAttr() {
- setUpHTML();
- fModel.getStructuredDocument().set("<html><body bgcolor=\"#ffffff\"><form method=\"post\"></form></body></html>"); // set
- // text
-
- // TEST GETTING A CMAttributeDeclaratoin
- Element formElement = (Element) fModel.getIndexedRegion(31); // <form>
- Attr attrNode = formElement.getAttributeNode(HTML40Namespace.ATTR_NAME_METHOD);
- CMAttributeDeclaration methodAttrDecl = fModelQuery.getCMAttributeDeclaration(attrNode);
- assertTrue("Content Model missing the attribute declaration for \"method\"", methodAttrDecl != null);
-
- List values = getValidStrings(formElement, methodAttrDecl);
- assertTrue("wrong number of values for attribute \"method\"", (values.size() == 2));
- assertTrue("default value for attribute \"method\" is wrong", (methodAttrDecl.getAttrType().getImpliedValue().equalsIgnoreCase("get")));
- }
-
- /**
- * A short test to ensure that a DTD can be loaded from a system
- * reference.
- *
- * Note: May require a functioning network connection for the references
- * to be resolved properly.
- *
- * @throws IOException
- */
- public void testDTDLoadFromSystemID_1() throws IOException {
- if (testShippedDTDLookup) {
- setUpXML();
- URL installationPath = Platform.getBundle(JSPUITestsPlugin.ID).getEntry("/");
- String diskLocation = null;
- diskLocation = FileLocator.resolve(installationPath).toExternalForm();
-
- assertTrue("failed to resolve plugin install path", diskLocation != null);
- String content = "<?xml version=\"1.0\"?><!DOCTYPE html SYSTEM " + diskLocation + "TestFiles/DTDs/wapDTDs/WAP-2-0/wml20.dtd\"" + "><html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:wml=\"http://www.wapforum.org/2001/wml\"></html>";
- fModel.getStructuredDocument().set(content);
- CMDocumentManager documentManagaer = fModelQuery.getCMDocumentManager();
- documentManagaer.setPropertyEnabled(CMDocumentManager.PROPERTY_ASYNC_LOAD, false);
- documentManagaer.setPropertyEnabled(CMDocumentManager.PROPERTY_AUTO_LOAD, true);
-
- Node domNode = (Node) fModel.getIndexedRegion(content.length() - 2);
- CMNode node = fModelQuery.getCMNode(domNode);
- assertTrue("wml20.dtd failed to load", node != null && node.getNodeName().equalsIgnoreCase("html"));
- }
- }
-
-
- /**
- * A short test to ensure that a DTD, the XHTML 1.0 Transitional one, can
- * be loaded from a system reference.
- *
- * Note: May require a functioning network connection for the references
- * to be resolved properly.
- * @throws IOException
- */
- public void testDTDLoadFromSystemID_2() throws IOException {
- if (testShippedDTDLookup) {
- URL installationPath = Platform.getBundle(JSPUITestsPlugin.ID).getEntry("/");
- String diskLocation = null;
-
- diskLocation = FileLocator.resolve(installationPath).toExternalForm();
-
- assertTrue("failed to resolve plugin install path", diskLocation != null);
- setUpXML();
- String content = "<?xml version=\"1.0\"?><!DOCTYPE html SYSTEM " + diskLocation + "testfiles/XHTML/xhtml1-transitional.dtd\"" + "><html></html>";
- fModel.getStructuredDocument().set(content);
-
- CMDocumentManager documentManagaer = fModelQuery.getCMDocumentManager();
- documentManagaer.setPropertyEnabled(CMDocumentManager.PROPERTY_ASYNC_LOAD, false);
- documentManagaer.setPropertyEnabled(CMDocumentManager.PROPERTY_AUTO_LOAD, true);
-
- // see defect 282429
- CMElementDeclaration htmlDecl = (CMElementDeclaration) fModelQuery.getCMNode((Node) fModel.getIndexedRegion(content.length() - 2));
- assertTrue("xhtml1-transitional.dtd not loaded", htmlDecl != null);
-
- // HTML's children are within a group
- CMContent contents = htmlDecl.getContent();
-
- assertTrue("content type is not a group", contents.getNodeType() == CMNode.GROUP);
-
- CMGroup group = (CMGroup) contents;
- int operator = group.getOperator();
- CMNodeList childList = group.getChildNodes();
- int max = contents.getMaxOccur();
- int min = contents.getMinOccur();
-
- // the group should be allowed once, with a sequence whose first
- // entry
- // is the declaration for HEAD
- assertTrue("occurrance of group", min == 1 && max == 1);
- assertTrue("relationship in group", operator == CMGroup.SEQUENCE);
- assertTrue("content descriptor type, position 0", contents.getNodeType() == CMNode.GROUP);
- assertTrue("child order (HEAD first)", childList.item(0).getNodeName().equals(HTML40Namespace.ElementName.HEAD.toLowerCase()));
- assertTrue("child order (BODY second)", childList.item(1).getNodeName().equals(HTML40Namespace.ElementName.BODY.toLowerCase()));
- }
- }
-
- /**
- * A short test to ensure that the DTD for JSP 1.2 tag libraries can be
- * loaded from a public reference registered in the XML catalog
- */
- public void testDTDLoadFromPublicID() {
- // No longer provided in WTP
- // TODO: provide DTD?
- // if (testShippedDTDLookup) {
- // setUpXML();
- // String contents = "<!DOCTYPE taglib PUBLIC \"-//Sun Microsystems,
- // Inc.//DTD JSP Tag Library 1.2//EN\">
- // <taglib><tag>foo</tag></taglib>";
- // fModel.getStructuredDocument().set(contents);
- //
- // CMDocumentManager documentManagaer =
- // fModelQuery.getCMDocumentManager();
- // documentManagaer.setPropertyEnabled(CMDocumentManager.PROPERTY_ASYNC_LOAD,
- // false);
- // documentManagaer.setPropertyEnabled(CMDocumentManager.PROPERTY_AUTO_LOAD,
- // true);
- //
- //
- // // taglib
- // CMNode node = fModelQuery.getCMNode((Node)
- // fModel.getIndexedRegion(contents.length() - 2));
- // assertTrue("web-jsptaglibrary_1_2.dtd failed to load through
- // catalog", node != null && node.getNodeType() ==
- // CMNode.ELEMENT_DECLARATION &&
- // node.getNodeName().equalsIgnoreCase("taglib"));
- //
- // // tag
- // node = fModelQuery.getCMNode((Node)
- // fModel.getIndexedRegion(contents.length() - 12));
- // assertTrue("CMElementDeclaration for \"tag\" from
- // web-jsptaglibrary_1_2.dtd is missing", node != null &&
- // node.getNodeType() == CMNode.ELEMENT_DECLARATION &&
- // node.getNodeName().equalsIgnoreCase("tag"));
- // CMContent content = ((CMElementDeclaration) node).getContent();
- // assertTrue("only one occurrence of child group allowed",
- // content.getNodeType() == CMNode.GROUP && content.getMaxOccur() ==
- // 1);
- // }
- }
-
-
-
- public static IStructuredModel createModel(String contentTypeID) {
- // create an empty model with its default factories
- IStructuredModel model = StructuredModelManager.getModelManager().createUnManagedStructuredModelFor(contentTypeID);
-
- // add editor adapter factories
- AdapterFactoryRegistry adapterRegistry = JSPUIPlugin.getDefault().getAdapterFactoryRegistry();
- Iterator adapterList = adapterRegistry.getAdapterFactories();
- // And all those appropriate for this particular type of content
- while (adapterList.hasNext()) {
- try {
- AdapterFactoryProvider provider = (AdapterFactoryProvider) adapterList.next();
- if (provider.isFor(model.getModelHandler())) {
- provider.addAdapterFactories(model);
- }
- }
- catch (Exception e) {
- Logger.logException(e);
- }
- }
- return model;
- }
-
- /**
- * Return the valid values for an attribute with the given declaration on
- * the given element. Derived from XMLPropertySource
- */
- private List getValidStrings(Element element, CMAttributeDeclaration attrDecl) {
- CMDataType valuesHelper = attrDecl.getAttrType();
- Vector values = new Vector();
-
- if (valuesHelper.getImpliedValueKind() == CMDataType.IMPLIED_VALUE_FIXED && valuesHelper.getImpliedValue() != null) {
- // FIXED value
- values.add(valuesHelper.getImpliedValue());
- }
- else {
- // ENUMERATED values
- String[] valueStrings = null;
- // new way
- valueStrings = fModelQuery.getPossibleDataTypeValues(element, attrDecl);
- if (valueStrings == null)
- // older way
- valueStrings = attrDecl.getAttrType().getEnumeratedValues();
- if (valueStrings != null) {
- for (int i = 0; i < valueStrings.length; i++) {
- values.add(valueStrings[i]);
- }
- }
- }
- if (valuesHelper.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_NONE && valuesHelper.getImpliedValue() != null) {
- if (!values.contains(valuesHelper.getImpliedValue()))
- values.add(valuesHelper.getImpliedValue());
- }
-
- return values;
- }
-
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/ColorRegions.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/ColorRegions.java
deleted file mode 100644
index 82eccdf94..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/ColorRegions.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.other;
-
-/**
- * Insert the type's description here.
- * Creation date: (7/21/00 4:14:40 PM)
- * @author: David Williams
- */
-public class ColorRegions extends java.util.Vector {
- /**
- * Default <code>serialVersionUID</code>
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * ColorRegions constructor comment.
- */
- public ColorRegions() {
- super();
- }
-
- /**
- * ColorRegions constructor comment.
- * @param initialCapacity int
- */
- public ColorRegions(int initialCapacity) {
- super(initialCapacity);
- }
-
- /**
- * ColorRegions constructor comment.
- * @param initialCapacity int
- * @param capacityIncrement int
- */
- public ColorRegions(int initialCapacity, int capacityIncrement) {
- super(initialCapacity, capacityIncrement);
- }
-
- public int[] asIntArray() {
- trimToSize();
- int arraySize = elementData.length;
- int[] results = new int[arraySize];
- //
- for (int i = 0; i < arraySize; i++) {
- results[i] = ((Integer) elementData[i]).intValue();
- }
- //
- return results;
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/DebugDocument.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/DebugDocument.java
deleted file mode 100644
index fd699c1ba..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/DebugDocument.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 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
- * Jens Lukowski/Innoopract - initial renaming/restructuring
- *
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.tests.other;
-
-import java.io.PrintStream;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-public class DebugDocument {
-
- public static void dump(Document document) {
- if (document == null)
- return;
- System.out.println("Dump of DOM"); //$NON-NLS-1$
-
- dump(document, System.out);
-
- //
- System.out.println();
- System.out.println("= = = = = ="); //$NON-NLS-1$
- System.out.println();
-
- }
-
- public static void dump(Document document, PrintStream out) {
- Node node = document.getFirstChild();
- while (node != null) {
- dump(node, out);
- node = node.getNextSibling();
- }
-
- }
-
- public static void dump(Node topNode) {
- dump(topNode, System.out);
- }
-
- public static void dump(Node topNode, PrintStream out) {
- if (topNode == null)
- return;
- // print out this node
- //
- printNode(topNode, out);
-
- // now print out its children
- //NodeList nodes = topNode.getChildNodes();
- //int len = nodes.getLength();
- //for (int i = 0; i < len; i++) {
-
- //Node node = nodes.item(i);
- //dump(node, out);
- //}
- }
-
- public static void printNode(Node topNode) {
- printNode(topNode, System.out);
-
- }
-
- public static void printNode(Node topNode, PrintStream out) {
- // print out this node
- //
- IStructuredDocumentRegion firstStructuredDocumentRegion = ((IDOMNode) topNode).getFirstStructuredDocumentRegion();
- IStructuredDocumentRegion lastStructuredDocumentRegion = ((IDOMNode) topNode).getLastStructuredDocumentRegion();
- if ((firstStructuredDocumentRegion == null) || (lastStructuredDocumentRegion == null)) {
- // no text to output
- } else {
- int start = firstStructuredDocumentRegion.getStart();
- int end = lastStructuredDocumentRegion.getEnd();
-
- String outString = topNode.toString();
- outString = org.eclipse.wst.sse.core.utils.StringUtils.escape(outString);
- out.println("[" + start + ", " + end + "]" + outString); //$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
- }
- // now do its children
- NodeList nodes = topNode.getChildNodes();
- int len = nodes.getLength();
- for (int i = 0; i < len; i++) {
- Node childNode = nodes.item(i);
- printNode(childNode, out);
- }
-
- }
-
- public DebugDocument() {
- super();
- }
-
-}
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/ScannerUnitTests.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/ScannerUnitTests.java
deleted file mode 100644
index 56aff374c..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/ScannerUnitTests.java
+++ /dev/null
@@ -1,1212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.other;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Iterator;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.jst.jsp.core.internal.modelhandler.ModelHandlerForJSP;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTagParser;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.text.CoreNodeList;
-import org.eclipse.wst.xml.core.internal.modelhandler.ModelHandlerForXML;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-/**
- * @author Nitin Dahyabhai <nitind@us.ibm.com>
- */
-public class ScannerUnitTests extends TestCase {
-
- public static boolean checkComplexRegionTypes(ITextRegionList regions, String[] contexts, String[][] embeddedContexts) {
-
- int embedCount = 0;
- Iterator iterator = regions.iterator();
- for (int i = 0; i < contexts.length; i++) {
- if (!iterator.hasNext())
- return false;
- ITextRegion region = (ITextRegion) iterator.next();
- if (region.getType() == contexts[i]) {
- if (region instanceof ITextRegionContainer) {
- ITextRegionContainer container = (ITextRegionContainer) region;
- boolean embeddedResult = checkSimpleRegionCount(container, embeddedContexts[embedCount].length) && checkSimpleRegionTypes(container.getRegions(), embeddedContexts[embedCount]);
- embedCount++;
- if (embeddedResult)
- continue;
- else
- return false;
- }
- else {
- continue;
- }
- }
- return false;
- }
- return true;
- }
-
- public static boolean checkModelLength(IStructuredDocument document, int length) {
- return checkModelLength(document.getLastStructuredDocumentRegion(), length);
- }
-
- public static boolean checkModelLength(IStructuredDocumentRegion region, int length) {
- return region.getEndOffset() == length;
- }
-
- public static boolean checkSimpleRegionCount(ITextRegionContainer regionContainer, int size) {
-
- // yes, this looks silly, but it makes it easier to find the exact
- // failure point
- if (!(regionContainer.getRegions().size() == size))
- return false;
- return true;
- }
-
- public static boolean checkSimpleRegionCounts(IStructuredDocumentRegionList regionContainers, int[] sizes) {
-
- int containers = regionContainers.getLength();
- if (containers != sizes.length)
- return false;
- for (int i = 0; i < sizes.length; i++) {
- if (i >= containers)
- return false;
- if (regionContainers.item(i).getNumberOfRegions() == sizes[i])
- continue;
- return false;
- }
- return true;
- }
-
- public static boolean checkSimpleRegionTypes(ITextRegionList regions, String[] contexts) {
-
- for (int i = 0; i < contexts.length; i++) {
- ITextRegion region = regions.get(i);
- if (region.getType() == contexts[i])
- continue;
- // else
- // Sys("region "+ i + ": "+region.getType()+" != " + contexts[i]);
- return false;
- }
- return true;
- }
-
- public static String loadChars(InputStream input) {
-
- StringBuffer s = new StringBuffer();
- try {
- int c = -1;
- while ((c = input.read()) >= 0) {
- if (c > 255)
- break;
- s.append((char) c);
- }
- input.close();
- }
- catch (IOException e) {
- System.out.println("An I/O error occured while scanning :");
- System.out.println(e);
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- return s.toString();
- }
-
- /**
- * Starts the application.
- *
- * @param args
- * an array of command-line arguments
- */
- public static void main(java.lang.String[] args) {
-
- if (args == null || args.length == 0) {
- runAll();
- }
- else if (args.length == 1) {
- String methodToRun = args[0].trim();
- runOne(methodToRun);
- }
- }
-
- protected static void runAll() {
-
- junit.textui.TestRunner.run(suite());
- }
-
- protected static void runOne(String methodName) {
-
- TestSuite testSuite = new TestSuite();
- TestCase test = new ScannerUnitTests(methodName);
- testSuite.addTest(test);
- junit.textui.TestRunner.run(testSuite);
- }
-
- protected static Test suite() {
-
- return new TestSuite(ScannerUnitTests.class);
- }
-
- public static void verifyLengths(int startOffset, IStructuredDocumentRegion firstDocumentRegion, String text) {
- IStructuredDocumentRegion holdRegion = firstDocumentRegion;
- assertTrue("document does not start at expected offset", holdRegion.getStartOffset() == startOffset);
- int lastEnd = 0;
- while (holdRegion != null && holdRegion.getEndOffset() > 0) {
- assertTrue("zero-length StructuredDocumentRegion found", holdRegion.getStartOffset() == lastEnd);
- assertTrue("TextRegionless StructuredDocumentRegion found", holdRegion.getNumberOfRegions() > 0);
- ITextRegionList list = holdRegion.getRegions();
- int index = 0;
- for (int i = 0; i < list.size(); i++) {
- ITextRegion region = list.get(i);
- assertTrue("text region seams don't match", region.getStart() == index);
- index += region.getLength();
- }
- lastEnd = holdRegion.getEndOffset();
- holdRegion = holdRegion.getNext();
- }
-
- holdRegion = firstDocumentRegion;
- while (holdRegion != null && holdRegion.getNext() != null) {
- holdRegion = holdRegion.getNext();
- }
- checkModelLength(holdRegion, text.length());
- }
-
- public static void verifyLengths(int startOffset, IStructuredDocumentRegionList list, String text) {
- verifyLengths(startOffset, list.item(0), text);
- }
-
- public static void verifyLengths(IStructuredDocument document, String text) {
- verifyLengths(0, document.getFirstStructuredDocumentRegion(), text);
- }
-
- public static void verifyLengths(IStructuredModel model, String text) {
- verifyLengths(model.getStructuredDocument(), text);
- }
-
- protected IStructuredDocument fModel;
- protected String input;
- private BlockTagParser parser;
- protected Object type;
-
- public ScannerUnitTests(String name) {
-
- super(name);
- }
-
- protected void appendTagBlock(StringBuffer buffer, String tagname, int length) {
-
- buffer.append('<');
- buffer.append(tagname);
- buffer.append('>');
- for (int i = 0; i < length; i++)
- buffer.append('_');
- buffer.append("</");
- buffer.append(tagname);
- buffer.append('>');
- }
-
- protected void setUp() {
-
- setUpXML(null);
- }
-
- protected IStructuredDocumentRegionList setUpJSP(String text) {
-
- setupModel(new ModelHandlerForJSP());
- parser.addBlockMarker(new BlockMarker("script", null, DOMRegionContext.BLOCK_TEXT, false));
- parser.addBlockMarker(new BlockMarker("style", null, DOMRegionContext.BLOCK_TEXT, false));
- parser.addBlockMarker(new BlockMarker("disallowJSP", null, DOMRegionContext.BLOCK_TEXT, true, false));
-
- /*
- * IStructuredDocumentRegionList nodes = setUpJSP("content <script>
- * <%= expression %> </script> <a> </a> <foo:disallowJSP> <%= %>
- * </foo:disallowJSP> >"); parser.addBlockMarker(new
- * BlockMarker("jsp:declaration", null,
- * XMLJSPRegionContexts.JSP_CONTENT, true)); parser.addBlockMarker(new
- * BlockMarker("jsp:expression", null,
- * XMLJSPRegionContexts.JSP_CONTENT, true)); parser.addBlockMarker(new
- * BlockMarker("jsp:scriptlet", null,
- * XMLJSPRegionContexts.JSP_CONTENT, true));
- */
- input = text;
- fModel.set(input);
- return fModel.getRegionList();
- }
-
- protected void setupModel(IModelHandler contentType) {
-
- fModel = (IStructuredDocument) contentType.getDocumentLoader().createNewStructuredDocument();
- this.parser = (BlockTagParser) fModel.getParser();
- }
-
- protected IStructuredDocumentRegionList setUpXML(String text) {
-
- setupModel(new ModelHandlerForXML());
- parser.addBlockMarker(new BlockMarker("script", null, DOMRegionContext.BLOCK_TEXT, false));
- parser.addBlockMarker(new BlockMarker("style", null, DOMRegionContext.BLOCK_TEXT, false));
- parser.addBlockMarker(new BlockMarker("disallowJSP", null, DOMRegionContext.BLOCK_TEXT, true, false));
- input = text;
- fModel.set(input);
- return fModel.getRegionList();
- }
-
- protected void testBlockScanBufferBoundaries(String contentTypeID) {
- IStructuredDocument document = null;
- // the interesting offsets are around 16k (16384)
- // for (int i = 16500; i > 16100; i--) {
- // for (int i = 17000; i > 15000; i--) {
- for (int i = 16384 + 25; i > 16364 - 25; i--) {
- StringBuffer text = new StringBuffer();
- document = StructuredModelManager.getModelManager().createStructuredDocumentFor(contentTypeID);
- appendTagBlock(text, "script", i);
- String string = text.toString();
- try {
- document.setText(this, string);
- verifyLengths(document, string);
- assertTrue("too few document regions [run value " + i + "] ", new CoreNodeList(document.getFirstStructuredDocumentRegion()).getLength() == 3);
- verifyLengths(document, string);
- IStructuredDocumentRegion startTag = document.getFirstStructuredDocumentRegion();
- IStructuredDocumentRegion middleBlock = startTag.getNext();
-// IStructuredDocumentRegion endTag = middleBlock.getNext();
- assertTrue("not block text in middle", middleBlock.getFirstRegion().getType() == DOMRegionContext.BLOCK_TEXT);
- }
- catch (Exception e) {
- assertNull("exception caught" + e, e);
- }
- //System.gc();
- }
- }
-
- public void testBlockScanBufferBoundariesForHTML() {
- testBlockScanBufferBoundaries("org.eclipse.wst.html.core.htmlsource");
- }
-
- public void testBlockScanBufferBoundariesForJSP() {
- testBlockScanBufferBoundaries("org.eclipse.jst.jsp.core.jspsource");
- }
-
- private void testBlockTag(IStructuredDocumentRegionList nodes) {
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 6, 1, 3, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_CLOSE}) && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.BLOCK_TEXT})
- && checkSimpleRegionTypes(nodes.item(3).getRegions(), new String[]{DOMRegionContext.XML_END_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(4).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testBlockTag_JSP() {
- testBlockTag(setUpJSP("begin <scrIPt type=\"pl2\"> </scrip t></scripts></scripts <///<!- ---></sCrIPt> end"));
- }
-
- /**
- * Check block tag scanning between XML content
- */
- public void testBlockTag_XML() {
-
- testBlockTag(setUpXML("begin <scrIPt type=\"pl2\"> </scrip t></scripts></scripts <///<!- ---></sCrIPt> end"));
- }
-
- /**
- * Check block tag scanning between XML content
- */
- public void testBlockTagWithJSPExpressions() {
-
- IStructuredDocumentRegionList nodes = setUpJSP("begin <script type=\"pl2\"> <%= \"expression\"%> </scrIPt> <a></a> <disallowJSP> <%= \"expression\" %> </disallowJSP> end");
-
- // OLD
- // boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 6,
- // 3, 3, 1, 3, 3, 1, 3, 3, 3, 1});
- // NEW
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 6, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- int i = 0;
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(i++).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(i++).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_CLOSE})
- && checkComplexRegionTypes(nodes.item(i++).getRegions(), new String[]{DOMRegionContext.BLOCK_TEXT, DOMRegionContext.BLOCK_TEXT, DOMRegionContext.BLOCK_TEXT}, new String[][]{{DOMJSPRegionContexts.JSP_EXPRESSION_OPEN,
- DOMJSPRegionContexts.JSP_CONTENT, DOMJSPRegionContexts.JSP_CLOSE}})
- && checkSimpleRegionTypes(nodes.item(i++).getRegions(), new String[]{DOMRegionContext.XML_END_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(i++).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(i++).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(i++).getRegions(), new String[]{DOMRegionContext.XML_END_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(i++).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(i++).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE})
- // CORRECT BEHAVIOR
- && checkSimpleRegionTypes(nodes.item(i++).getRegions(), new String[]{DOMRegionContext.BLOCK_TEXT})
- // OLD, BROKEN BEHAVIOR
- // && checkSimpleRegionTypes(nodes.item(i++).getRegions(),
- // new
- // String[]{
- // XMLRegionContext.BLOCK_TEXT,
- // XMLRegionContext.BLOCK_TEXT,
- // XMLRegionContext.BLOCK_TEXT})
- && checkSimpleRegionTypes(nodes.item(i++).getRegions(), new String[]{DOMRegionContext.XML_END_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(i++).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- private void testBufferUnderRun_1(IStructuredDocumentRegionList nodes) {
-
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 6, 2});
- assertTrue("IStructuredDocumentRegion region count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_COMMENT_OPEN, DOMRegionContext.XML_COMMENT_TEXT});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testBufferUnderRun_1_JSP() {
- testBufferUnderRun_1(setUpJSP("content <tag a=b/><!--c"));
- }
-
- /**
- * Check for buffer under-runs on block scanning
- */
- public void testBufferUnderRun_1_XML() {
- testBufferUnderRun_1(setUpXML("content <tag a=b/><!--c"));
- }
-
- private void testBufferUnderRun_2(IStructuredDocumentRegionList nodes) {
-
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 6, 1});
- assertTrue("IStructuredDocumentRegion region count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE}) && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_COMMENT_OPEN});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testBufferUnderRun_2_JSP() {
-
- testBufferUnderRun_2(setUpJSP("content <tag a=b/><!--"));
- }
-
- /**
- * Check for buffer under-runs on block scanning
- */
- public void testBufferUnderRun_2_XML() {
-
- testBufferUnderRun_2(setUpXML("content <tag a=b/><!--"));
- }
-
- private void testCDATA(IStructuredDocumentRegionList nodes) {
-
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 3, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_CDATA_OPEN, DOMRegionContext.XML_CDATA_TEXT, DOMRegionContext.XML_CDATA_CLOSE})
- && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testCDATA_JSP() {
-
- testCDATA(setUpJSP("a <![CDATA[<>!!<!!></&&&--<!--]]> b"));
- }
-
- /**
- * Check CDATA section scanning between content
- */
- public void testCDATA_XML() {
-
- testCDATA(setUpXML("a <![CDATA[<>!!<!!></&&&--<!--]]> b"));
- }
-
- public void testCDATAinBlockJSP1() {
- setUpJSP("<script><![CDATA[ contents]]></script>");
- }
-
- public void testCDATAinBlockJSP2() {
- setUpJSP("<script><![CDATA[</script>]]></script>");
- }
-
- public void testCDATAinBlockJSP2a() {
- setUpJSP("<script><![CDATA[contents</script>]]></script>");
- }
-
- public void testCDATAinBlockJSP2b() {
- setUpJSP("<script><![CDATA[</script>contents]]></script>");
- }
-
- public void testCDATAinBlockJSP3() {
- setUpJSP("<script><![CDATA[]]></script>");
- }
-
- public void testCDATAinBlockJSP4() {
- setUpJSP("<script><![CDATA[ ]]>");
- }
-
- public void testCDATAinBlockJSP5() {
- setUpJSP("<script><![CDATA[ ]]]>");
- }
-
- public void testCDATAinBlockJSP6() {
- setUpJSP("<script><![CDATA[ ]]");
- }
-
- public void testCDATAinBlockJSP7() {
- setUpJSP("<script><![CDATA[ ");
- }
-
- public void testCDATAinBlockJSP8() {
- setUpJSP("<script><![CDATA[");
- }
-
- public void testCDATAinBlockXML1() {
- setUpXML("<script><![CDATA[ ]]></script>");
- }
-
- public void testCDATAinBlockXML2() {
- setUpXML("<script><![CDATA[</script>]]></script>");
- }
-
- public void testCDATAinBlockXML3() {
- setUpXML("<script><![CDATA[]]></script>");
- }
-
- public void testCDATAinBlockXML4() {
- setUpXML("<script><![CDATA[ ]]>");
- }
-
- public void testCDATAinBlockXML5() {
- setUpXML("<script><![CDATA[ ]]]>");
- }
-
- public void testCDATAinBlockXML6() {
- setUpXML("<script><![CDATA[ ]]");
- }
-
- public void testCDATAinBlockXML7() {
- setUpXML("<script><![CDATA[ ");
- }
-
- public void testCDATAinBlockXML8() {
- setUpXML("<script><![CDATA[");
- }
-
- /**
- * Check comments between XML content
- */
- public void testComments_JSP() {
- String text = "a <!-- --><!----><%-- --%> b";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 3, 2, 3, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_COMMENT_OPEN, DOMRegionContext.XML_COMMENT_TEXT, DOMRegionContext.XML_COMMENT_CLOSE})
- && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_COMMENT_OPEN, DOMRegionContext.XML_COMMENT_CLOSE})
- && checkSimpleRegionTypes(nodes.item(3).getRegions(), new String[]{DOMJSPRegionContexts.JSP_COMMENT_OPEN, DOMJSPRegionContexts.JSP_COMMENT_TEXT, DOMJSPRegionContexts.JSP_COMMENT_CLOSE})
- && checkSimpleRegionTypes(nodes.item(4).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- /**
- * Check comments between JSP content
- */
- public void testComments_XML() {
- String text = "a <!-- --><<!---->b";
- IStructuredDocumentRegionList nodes = setUpXML(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 3, 1, 2, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_COMMENT_OPEN, DOMRegionContext.XML_COMMENT_TEXT, DOMRegionContext.XML_COMMENT_CLOSE})
- && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN})
- && checkSimpleRegionTypes(nodes.item(3).getRegions(), new String[]{DOMRegionContext.XML_COMMENT_OPEN, DOMRegionContext.XML_COMMENT_CLOSE})
- && checkSimpleRegionTypes(nodes.item(4).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- private void testContent(IStructuredDocumentRegionList nodes) {
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- /**
- * Check simple content scanning
- */
- public void testContentJSP() {
-
- testContent(setUpJSP("hello world"));
- }
-
- public void testContentXML() {
-
- testContent(setUpXML("hello world"));
- }
-
- public void testDollarsign_Leading() {
- IStructuredDocumentRegionList nodes = setUpJSP("<a type=\"$ \"/>");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testDollarsign_Single() {
- IStructuredDocumentRegionList nodes = setUpJSP("<a type=\"$\"/>");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testDollarsign_SingleWithSpaces() {
- IStructuredDocumentRegionList nodes = setUpJSP("<a type=\" $ \"/>");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testELinContent() {
- String text = "${out.foo}";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- sizeCheck = checkSimpleRegionCount(((ITextRegionContainer) nodes.item(0).getRegions().get(0)), 3);
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- typeCheck = checkSimpleRegionTypes(((ITextRegionContainer) nodes.item(0).getRegions().get(0)).getRegions(), new String[]{DOMJSPRegionContexts.JSP_EL_OPEN, DOMJSPRegionContexts.JSP_EL_CONTENT, DOMJSPRegionContexts.JSP_EL_CLOSE});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
-
- public void testELtolerance_transparency_Dquote() {
- IStructuredDocumentRegionList nodes = setUpJSP("<a type=\"${out.foo}\"/>");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- sizeCheck &= checkSimpleRegionCount(((ITextRegionContainer) nodes.item(0).getRegions().get(4)), 5);
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- typeCheck &= checkSimpleRegionTypes(((ITextRegionContainer) nodes.item(0).getRegions().get(4)).getRegions(), new String[]{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMJSPRegionContexts.JSP_EL_OPEN,
- DOMJSPRegionContexts.JSP_EL_CONTENT, DOMJSPRegionContexts.JSP_EL_CLOSE, DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testELtolerance_transparency_DquoteWithSpaces() {
- // note: whitespace on either side returns a WHITE_SPACE context
- IStructuredDocumentRegionList nodes = setUpJSP("<a type=\"_${out.foo}_\"/>");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- sizeCheck &= checkSimpleRegionCount(((ITextRegionContainer) nodes.item(0).getRegions().get(4)), 7);
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- typeCheck &= checkSimpleRegionTypes(((ITextRegionContainer) nodes.item(0).getRegions().get(4)).getRegions(), new String[]{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE,
- DOMJSPRegionContexts.JSP_EL_OPEN, DOMJSPRegionContexts.JSP_EL_CONTENT, DOMJSPRegionContexts.JSP_EL_CLOSE, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testELtolerance_transparency_Squote() {
- IStructuredDocumentRegionList nodes = setUpJSP("<a type='${out.foo}'/>");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- sizeCheck &= checkSimpleRegionCount(((ITextRegionContainer) nodes.item(0).getRegions().get(4)), 5);
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- typeCheck &= checkSimpleRegionTypes(((ITextRegionContainer) nodes.item(0).getRegions().get(4)).getRegions(), new String[]{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_SQUOTE, DOMJSPRegionContexts.JSP_EL_OPEN,
- DOMJSPRegionContexts.JSP_EL_CONTENT, DOMJSPRegionContexts.JSP_EL_CLOSE, DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_SQUOTE});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testEmbeddedJSPDeclaration() {
-
- IStructuredDocumentRegionList nodes = setUpJSP("content <foo bar=\"<%! int foo; %>\" baz=\"il\">");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 9});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkComplexRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_CLOSE,},
- new String[][]{{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMJSPRegionContexts.JSP_DECLARATION_OPEN, DOMJSPRegionContexts.JSP_CONTENT, DOMJSPRegionContexts.JSP_CLOSE,
- DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMRegionContext.WHITE_SPACE}});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testEmbeddedJSPDeclarationInCDATA() {
- IStructuredDocumentRegionList nodes = setUpJSP("<![CDATA[<%!%>]]>");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{3});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkComplexRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CDATA_OPEN, DOMRegionContext.XML_CDATA_TEXT, DOMRegionContext.XML_CDATA_CLOSE,}, new String[][]{{
- DOMJSPRegionContexts.JSP_DECLARATION_OPEN, DOMJSPRegionContexts.JSP_CLOSE}});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testEmbeddedJSPExpression() {
- IStructuredDocumentRegionList nodes = setUpJSP("content <foo bar=\"<%= \"Hello, World\"%>\" baz=\"il\">");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 9});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkComplexRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_CLOSE,},
- new String[][]{{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMJSPRegionContexts.JSP_EXPRESSION_OPEN, DOMJSPRegionContexts.JSP_CONTENT, DOMJSPRegionContexts.JSP_CLOSE,
- DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMRegionContext.WHITE_SPACE}});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testEmbeddedJSPExpressionInCDATA() {
- IStructuredDocumentRegionList nodes = setUpJSP("<![CDATA[<%=%>]]>");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{3});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkComplexRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CDATA_OPEN, DOMRegionContext.XML_CDATA_TEXT, DOMRegionContext.XML_CDATA_CLOSE,}, new String[][]{{
- DOMJSPRegionContexts.JSP_EXPRESSION_OPEN, DOMJSPRegionContexts.JSP_CLOSE}});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testEmbeddedJSPScriptlet() {
- IStructuredDocumentRegionList nodes = setUpJSP("content <foo bar=\"<% %>\" baz=\"il\">");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 9});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkComplexRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_CLOSE,},
- new String[][]{{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN, DOMJSPRegionContexts.JSP_CONTENT, DOMJSPRegionContexts.JSP_CLOSE,
- DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMRegionContext.WHITE_SPACE}});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testEmbeddedJSPScriptletInCDATA() {
-
- IStructuredDocumentRegionList nodes = setUpJSP("<![CDATA[<%%>]]>");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{3});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkComplexRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CDATA_OPEN, DOMRegionContext.XML_CDATA_TEXT, DOMRegionContext.XML_CDATA_CLOSE,}, new String[][]{{
- DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN, DOMJSPRegionContexts.JSP_CLOSE}});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testEmbeddedTagInAttr() {
-
- IStructuredDocumentRegionList nodes = setUpJSP("<a href=\"<jsp:getProperty/>\">");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkComplexRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_CLOSE}, new String[][]{{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME,
- DOMRegionContext.XML_EMPTY_TAG_CLOSE, DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE}});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testJSP_DHTMLimport() {
- String text = "<a> <?import type=\"foo\">";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{3, 1, 6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE});
- assertTrue("region context type check", typeCheck);
- typeCheck = checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- typeCheck = checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_PI_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_PI_CLOSE});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes, text);
- }
-
- public void testJSP_PI() {
- String text = "begin <?php asda;lsgjalg;lasjlajglajslkajlgajsljgaljglaj?>end";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 4, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
-
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_PI_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_PI_CONTENT, DOMRegionContext.XML_PI_CLOSE})
- && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- public void testJSPAmpersandInTagNameInAttValue() {
- String text = "<a href=\"<a&b>\"/>";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{7, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count (tag)", sizeCheck);
- sizeCheck = checkSimpleRegionCount(((ITextRegionContainer) nodes.item(0).getRegions().get(4)), 4);
- assertTrue("IStructuredDocumentRegion and ITextRegion count (broken embedded tag)", sizeCheck);
-
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_CLOSE});
- assertTrue("region context type check (tag)", typeCheck);
- typeCheck = checkSimpleRegionTypes(((ITextRegionContainer) nodes.item(0).getRegions().get(4)).getRegions(), new String[]{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME,
- DOMRegionContext.UNDEFINED});
- assertTrue("region context type check (broken embedded tag)", typeCheck);
- typeCheck = checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check (content)", typeCheck);
- verifyLengths(0, nodes, text);
- }
-
- public void testJSPCommentInXMLComment() {
- String text = "s<!--\n<%--c--%>\n-->\n<html>\n<body><script> <%--c--%> </script>\n";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 5, 1, 3, 1, 3, 3, 3, 3, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- int item = 0;
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(item++).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkComplexRegionTypes(nodes.item(item++).getRegions(), new String[]{DOMRegionContext.XML_COMMENT_OPEN, DOMRegionContext.XML_COMMENT_TEXT, DOMRegionContext.XML_COMMENT_TEXT, DOMRegionContext.XML_COMMENT_TEXT,
- DOMRegionContext.XML_COMMENT_CLOSE}, new String[][]{{DOMJSPRegionContexts.JSP_COMMENT_OPEN, DOMJSPRegionContexts.JSP_COMMENT_TEXT, DOMJSPRegionContexts.JSP_COMMENT_CLOSE}})
- && checkSimpleRegionTypes(nodes.item(item++).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(item++).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(item++).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(item++).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(item++).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkComplexRegionTypes(nodes.item(item++).getRegions(), new String[]{DOMRegionContext.BLOCK_TEXT, DOMRegionContext.BLOCK_TEXT, DOMRegionContext.BLOCK_TEXT}, new String[][]{{DOMJSPRegionContexts.JSP_COMMENT_OPEN,
- DOMJSPRegionContexts.JSP_COMMENT_TEXT, DOMJSPRegionContexts.JSP_COMMENT_CLOSE}})
- && checkSimpleRegionTypes(nodes.item(item++).getRegions(), new String[]{DOMRegionContext.XML_END_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(9).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- /**
- * Check that jsp:directive.(include|page|taglib) are recognized and
- * treated properly
- */
- public void testJSPDirectiveTags() {
- String text = "begin <jsp:directive.taglib> <jsp:directive.page a> <jsp:directive.include a=> <jsp:directive.pages a=b> end";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 3, 1, 4, 1, 5, 1, 6, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMJSPRegionContexts.JSP_DIRECTIVE_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(3).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMJSPRegionContexts.JSP_DIRECTIVE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(4).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(5).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMJSPRegionContexts.JSP_DIRECTIVE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(6).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(7).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_CLOSE}) && checkSimpleRegionTypes(nodes.item(8).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- public void testJSPDollarsign_Trailing() {
- String text = "<a type=\" $\"/>";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- public void testJSPDollarsign_TrailingInContent() {
- String text = "nnn$<a type=\" $\"/>";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 1, 6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check (content)", typeCheck);
- typeCheck = checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check (content)", typeCheck);
- typeCheck = checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- assertTrue("region context type check (tag)", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- /**
- * Check JSP code sections between HTML content
- */
- public void testJSPExpression() {
- IStructuredDocumentRegionList nodes = setUpJSP("begin <%= \"Hello,World\" %> end");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 1, 1, 1, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT}) && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMJSPRegionContexts.JSP_EXPRESSION_OPEN})
- && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMJSPRegionContexts.JSP_CONTENT}) && checkSimpleRegionTypes(nodes.item(3).getRegions(), new String[]{DOMJSPRegionContexts.JSP_CLOSE})
- && checkSimpleRegionTypes(nodes.item(4).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testJSPGreaterThanInAttValue() {
- IStructuredDocumentRegionList nodes = setUpJSP("<a type=\">next\"/>");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- assertTrue("region is not somple", !(nodes.item(0).getRegions().get(4) instanceof ITextRegionContainer));
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testJSPInvalidTagNameInAttValue() {
- String text = "S<a type=\"a<4\"/>";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
-
- assertTrue("IStructuredDocumentRegion and ITextRegion count (tag)", sizeCheck);
- sizeCheck = checkSimpleRegionCount(((ITextRegionContainer) nodes.item(1).getRegions().get(4)), 5);
- assertTrue("IStructuredDocumentRegion and ITextRegion count (att value)", sizeCheck);
- typeCheck = checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- assertTrue("region context type check (tag)", typeCheck);
- typeCheck = checkSimpleRegionTypes(((ITextRegionContainer) nodes.item(1).getRegions().get(4)).getRegions(), new String[]{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE,
- DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE});
- assertTrue("region context type check (att value)", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- public void testJSPLessThanInAttValue() {
- //bails out of the attribute value with an UNDEFINED region for the
- // end quote
- String text = "<button label=\"<previous\"/>";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- sizeCheck = checkSimpleRegionCount(((ITextRegionContainer) nodes.item(0).getRegions().get(4)), 4);
- assertTrue("IStructuredDocumentRegion and ITextRegion count (att value)", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- assertTrue("region context type check", typeCheck);
- typeCheck = checkSimpleRegionTypes(((ITextRegionContainer) nodes.item(0).getRegions().get(4)).getRegions(), new String[]{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME,
- DOMRegionContext.UNDEFINED});
- assertTrue("region context type check (att value)", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- /**
- * Check JSP code sections, as a tag, scanning between HTML content
- */
- // public void testJSPScriptletTag() {
- // IStructuredDocumentRegionList nodes = setUpJSP("begin <jsp:scriptlet>
- // int foo = bar; //<jsp:Scriptlet>//</jsp:scriptlets</jsp:scriptlet>
- // end");
- //
- // boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 3, 1,
- // 3,
- // 1});
- // assertTrue("IStructuredDocumentRegion and ITextRegion count",
- // sizeCheck);
- //
- // boolean typeCheck =
- // checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{
- // XMLRegionContext.XML_CONTENT})
- // && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{
- // XMLRegionContext.XML_TAG_OPEN,
- // XMLRegionContext.XML_TAG_NAME,
- // XMLRegionContext.XML_TAG_CLOSE})
- // && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{
- // XMLJSPRegionContexts.JSP_CONTENT})
- // && checkSimpleRegionTypes(nodes.item(3).getRegions(), new String[]{
- // XMLRegionContext.XML_END_TAG_OPEN,
- // XMLRegionContext.XML_TAG_NAME,
- // XMLRegionContext.XML_TAG_CLOSE})
- // && checkSimpleRegionTypes(nodes.item(4).getRegions(), new String[]{
- // XMLJSPRegionContexts.XML_CONTENT});
- // assertTrue("region context type check", typeCheck);
- //
- // verifyModelLength();
- // }
- /**
- * Check JSP code sections, as a tag, scanning between HTML content
- */
- // public void testJSPTextTag() {
- // IStructuredDocumentRegionList nodes = setUpJSP("begin <jsp:text> int
- // foo
- // = bar; //<jsp:TEXT>//</jsp:Texts</jsp:text> <a> </a> end");
- //
- // boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 3, 1,
- // 3,
- // 1, 3, 1, 3, 1});
- // assertTrue("IStructuredDocumentRegion and ITextRegion count",
- // sizeCheck);
- //
- // boolean typeCheck =
- // checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{
- // XMLJSPRegionContexts.XML_CONTENT})
- // && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{
- // XMLJSPRegionContexts.XML_TAG_OPEN,
- // XMLJSPRegionContexts.XML_TAG_NAME,
- // XMLJSPRegionContexts.XML_TAG_CLOSE})
- // && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{
- // XMLJSPRegionContexts.XML_CDATA_TEXT})
- // && checkSimpleRegionTypes(nodes.item(3).getRegions(), new String[]{
- // XMLJSPRegionContexts.XML_END_TAG_OPEN,
- // XMLJSPRegionContexts.XML_TAG_NAME,
- // XMLJSPRegionContexts.XML_TAG_CLOSE})
- // && checkSimpleRegionTypes(nodes.item(4).getRegions(), new String[]{
- // XMLJSPRegionContexts.XML_CONTENT})
- // && checkSimpleRegionTypes(nodes.item(5).getRegions(), new String[]{
- // XMLJSPRegionContexts.XML_TAG_OPEN,
- // XMLJSPRegionContexts.XML_TAG_NAME,
- // XMLJSPRegionContexts.XML_TAG_CLOSE})
- // && checkSimpleRegionTypes(nodes.item(6).getRegions(), new String[]{
- // XMLJSPRegionContexts.XML_CONTENT})
- // && checkSimpleRegionTypes(nodes.item(7).getRegions(), new String[]{
- // XMLJSPRegionContexts.XML_END_TAG_OPEN,
- // XMLJSPRegionContexts.XML_TAG_NAME,
- // XMLJSPRegionContexts.XML_TAG_CLOSE})
- // && checkSimpleRegionTypes(nodes.item(8).getRegions(), new String[]{
- // XMLJSPRegionContexts.XML_CONTENT});
- // assertTrue("region context type check", typeCheck);
- //
- // verifyModelLength();
- // }
- /**
- * Check that jsp:root is recognized and treated properly
- */
- public void testJSPRootTag() {
-
- IStructuredDocumentRegionList nodes = setUpJSP("begin <jsp:root> <jsp:roots a> <jsp:roo a=> </jsp:root a=b><a>end");
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 3, 1, 4, 1, 5, 1, 6, 3, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMJSPRegionContexts.JSP_ROOT_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(3).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(4).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(5).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(6).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(7).getRegions(), new String[]{DOMRegionContext.XML_END_TAG_OPEN, DOMJSPRegionContexts.JSP_ROOT_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(8).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE})
- && checkSimpleRegionTypes(nodes.item(9).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testJSPTagInAttValue() {
- String text = "<a type=\"<a/>\"/>";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- sizeCheck = checkSimpleRegionCount(((ITextRegionContainer) nodes.item(0).getRegions().get(4)), 5);
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- assertTrue("region context type check (tag)", typeCheck);
- typeCheck = checkSimpleRegionTypes(((ITextRegionContainer) nodes.item(0).getRegions().get(4)).getRegions(), new String[]{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME,
- DOMRegionContext.XML_EMPTY_TAG_CLOSE, DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE});
- assertTrue("region context type check (att value)", typeCheck);
- verifyLengths(0, nodes, text);
- }
-
- public void testNothinginBlockJSP9() {
- String text = "<script>";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{3});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- public void testNothinginBlockXML9() {
- String text = "<script>";
- IStructuredDocumentRegionList nodes = setUpXML(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{3});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- private void testSimpleTag(IStructuredDocumentRegionList nodes) {
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 10, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME,
- DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE,
- DOMRegionContext.XML_TAG_CLOSE}) && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyModelLength();
- }
-
- public void testSimpleTag_JSP() {
- testSimpleTag(setUpJSP("0 <tagname attr1 attr2=value2 attr3=\"value3\"> 1"));
- }
-
- /**
- * Check simple tag scanning between XML content
- */
- public void testSimpleTag_XML() {
- testSimpleTag(setUpXML("0 <tagname attr1 attr2=value2 attr3=\"value3\"> 1"));
- }
-
- public void testVBLinContent() {
- String text = "#{out.foo}";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- sizeCheck = checkSimpleRegionCount(((ITextRegionContainer) nodes.item(0).getRegions().get(0)), 3);
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- typeCheck = checkSimpleRegionTypes(((ITextRegionContainer) nodes.item(0).getRegions().get(0)).getRegions(), new String[]{DOMJSPRegionContexts.JSP_VBL_OPEN, DOMJSPRegionContexts.JSP_VBL_CONTENT, DOMJSPRegionContexts.JSP_VBL_CLOSE});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- public void testVBLtolerance_transparency_Dquote() {
- String text = "<a type=\"#{out.foo}\"/>";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- sizeCheck &= checkSimpleRegionCount(((ITextRegionContainer) nodes.item(0).getRegions().get(4)), 5);
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- typeCheck &= checkSimpleRegionTypes(((ITextRegionContainer) nodes.item(0).getRegions().get(4)).getRegions(), new String[]{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMJSPRegionContexts.JSP_VBL_OPEN,
- DOMJSPRegionContexts.JSP_VBL_CONTENT, DOMJSPRegionContexts.JSP_VBL_CLOSE, DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- public void testVBLtolerance_transparency_DquoteWithSpaces() {
- // note: whitespace on either side returns a WHITE_SPACE context
- String text = "<a type=\"_#{out.foo}_\"/>";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- sizeCheck &= checkSimpleRegionCount(((ITextRegionContainer) nodes.item(0).getRegions().get(4)), 7);
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- typeCheck &= checkSimpleRegionTypes(((ITextRegionContainer) nodes.item(0).getRegions().get(4)).getRegions(), new String[]{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE,
- DOMJSPRegionContexts.JSP_VBL_OPEN, DOMJSPRegionContexts.JSP_VBL_CONTENT, DOMJSPRegionContexts.JSP_VBL_CLOSE, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- public void testVBLtolerance_transparency_Squote() {
- String text = "<a type='#{out.foo}'/>";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- sizeCheck &= checkSimpleRegionCount(((ITextRegionContainer) nodes.item(0).getRegions().get(4)), 5);
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- typeCheck &= checkSimpleRegionTypes(((ITextRegionContainer) nodes.item(0).getRegions().get(4)).getRegions(), new String[]{DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_SQUOTE, DOMJSPRegionContexts.JSP_VBL_OPEN,
- DOMJSPRegionContexts.JSP_VBL_CONTENT, DOMJSPRegionContexts.JSP_VBL_CLOSE, DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_SQUOTE});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes, text);
- }
-
- public void testXML_DHTMLimport() {
- String text = "<a> <?import type=\"foo\">";
- IStructuredDocumentRegionList nodes = setUpXML(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{3, 1, 6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_CLOSE});
- assertTrue("region context type check", typeCheck);
- typeCheck = checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- typeCheck = checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_PI_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_PI_CLOSE});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes, text);
- }
-
- public void testXML_PI() {
- String text = "begin <?php asda;lsgjalg;lasjlajglajslkajlgajsljgaljglaj?>end";
- IStructuredDocumentRegionList nodes = setUpXML(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{1, 4, 1});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
-
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_CONTENT})
- && checkSimpleRegionTypes(nodes.item(1).getRegions(), new String[]{DOMRegionContext.XML_PI_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_PI_CONTENT, DOMRegionContext.XML_PI_CLOSE})
- && checkSimpleRegionTypes(nodes.item(2).getRegions(), new String[]{DOMRegionContext.XML_CONTENT});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- public void testXMLDollarsign_Trailing() {
- String text = "<a type=\" $\"/>";
- IStructuredDocumentRegionList nodes = setUpXML(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{6});
- assertTrue("IStructuredDocumentRegion and ITextRegion count", sizeCheck);
- boolean typeCheck = checkSimpleRegionTypes(nodes.item(0).getRegions(), new String[]{DOMRegionContext.XML_TAG_OPEN, DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS,
- DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, DOMRegionContext.XML_EMPTY_TAG_CLOSE});
- assertTrue("region context type check", typeCheck);
- verifyLengths(0, nodes.item(0), text);
- }
-
- public void testUndefinedRegionContainer() {
- // see RATLC RATLC00284776
- String text = "<option <elms:inputValue value=\"<%=uomvox.uomID%>\"/><%=uomvox.uomID.equals(uomID) ? \" selected\" : \"\"%>>";
- IStructuredDocumentRegionList nodes = setUpJSP(text);
- boolean sizeCheck = checkSimpleRegionCounts(nodes, new int[]{5});
- assertTrue("IStructuredDocumentRegion and overall ITextRegion count", sizeCheck);
- // checkComplexRegionTypes(nodes.item(0).getRegions(), new
- // String[]{XMLRegionContext.XML_TAG_OPEN,
- // XMLRegionContext.XML_TAG_NAME,
- // XMLRegionContext.XML_TAG_ATTRIBUTE_NAME,
- // XMLRegionContext.UNDEFINED, XMLRegionContext.XML_TAG_CLOSE}, new
- // String[][] {{}});
- verifyEmbeddedContainerParentage(nodes);
- verifyLengths(0, nodes.item(0), text);
- }
-
- /**
- * @param nodes
- */
- private void verifyEmbeddedContainerParentage(IStructuredDocumentRegionList nodes) {
- for (int i = 0; i < nodes.getLength(); i++) {
- IStructuredDocumentRegion r = nodes.item(i);
- ITextRegionList list = r.getRegions();
- for (int j = 0; j < list.size(); j++) {
- ITextRegion region = list.get(j);
- if (region instanceof ITextRegionContainer) {
- assertNotNull("parent is null for " + region, ((ITextRegionContainer) region).getParent());
- }
- }
- }
- }
-
- protected boolean verifyModelLength() {
- return checkModelLength(fModel, input.length());
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/ScanningTests.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/ScanningTests.java
deleted file mode 100644
index 4c3cf2c83..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/ScanningTests.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.other;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
-import org.eclipse.wst.sse.core.internal.document.StructuredDocumentFactory;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.text.StructuredDocumentRegionIterator;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.parser.XMLSourceParser;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-/**
- * test class for basic parsing and scanning
- */
-
-public class ScanningTests {
- private static IStructuredDocument textStore = null;
- private static long startTime = 0;
- private static long stopTime = 0;
-
- /**
- * ScanningTests constructor comment.
- */
- public ScanningTests() {
- super();
- }
-
- public static void checkNodeSeams(String fileName) {
- System.out.println("CHECKING NODE BOUNDARIES AND CONTENTS FOR " + fileName);
- Enumeration e = parseFile(fileName).elements();
- int lastEnd = 0;
- while (e.hasMoreElements()) {
- IStructuredDocumentRegion r = (IStructuredDocumentRegion) e.nextElement();
- if (r.getStartOffset() != lastEnd)
- System.out.println("ERROR: dropped in " + r);
- if (r.getNumberOfRegions() < 1)
- System.out.println("ERROR: empty IStructuredDocumentRegion " + r);
- lastEnd = r.getEndOffset();
- }
- System.out.println("DONE");
- }
-
- public static void checkParse(String fileName) {
- checkTokenSeams(fileName);
- checkNodeSeams(fileName);
- }
-
- public static void checkTokenSeams(String fileName) {
- System.out.println("CHECKING TOKENIZER REGION BOUNDARIES FOR " + fileName);
- Iterator e = tokenizeFile(fileName).iterator();
- int lastEnd = 0;
- while (e.hasNext()) {
- IStructuredDocumentRegion r = (IStructuredDocumentRegion) e.next();
- if (r.getStartOffset() != lastEnd)
- System.out.println("ERROR: dropped in " + r);
- lastEnd = r.getEndOffset();
- }
- System.out.println("DONE");
- }
-
- public static char[] loadChars(String fileName) {
- char[] chars = null;
- int c = 0;
- int length = 0;
- int count = 0;
- File file = null;
- FileInputStream fis = null;
- try {
- file = new File(fileName);
- length = (int) file.length();
- chars = new char[length];
- fis = new FileInputStream(file);
- while (((c = fis.read()) >= 0) && (count < length)) {
- chars[count++] = (char) c;
- }
- }
- catch (FileNotFoundException e) {
- System.out.println("File not found : \"" + fileName + "\"");
- System.exit(1);
- }
- catch (ArrayIndexOutOfBoundsException e) {
- System.out.println("Usage : java JSPLexer3 <inputfile>");
- System.exit(1);
- }
- catch (IOException e) {
- System.out.println("An I/O error occured while scanning :");
- System.out.println(e);
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- return chars;
- }
-
- public static RegionParser newParser() {
- JSPSourceParser parser = new JSPSourceParser();
- parser.addBlockMarker(new BlockMarker("foo", null, DOMRegionContext.BLOCK_TEXT, true));
- parser.addBlockMarker(new BlockMarker("globalFoo", null, DOMRegionContext.BLOCK_TEXT, true));
- // parser.addBlockMarker(new BlockMarker("jsp:expression", null, XMLJSPRegionContexts.JSP_CONTENT, true));
- // parser.addBlockMarker(new BlockMarker("jsp:scriptlet", null, XMLJSPRegionContexts.JSP_CONTENT, true));
- // parser.addBlockMarker(new BlockMarker("jsp:declaration", null, XMLJSPRegionContexts.JSP_CONTENT, true));
- // parser.addBlockMarker(new BlockMarker("jsp:text", null, XMLRegionContext.XML_CDATA_TEXT, true));
- return parser;
- }
-
- public static RegionParser newXMLParser() {
- XMLSourceParser parser = new XMLSourceParser();
- parser.addBlockMarker(new BlockMarker("Script", DOMRegionContext.BLOCK_TEXT, false));
- parser.addBlockMarker(new BlockMarker("stylE", DOMRegionContext.BLOCK_TEXT, false));
- return parser;
- }
-
- public static Vector parse(String stringdata) {
- return parse(stringdata, false);
- }
-
- public static Vector parse(String stringdata, boolean useXML) {
- if (Debug.perfTest) {
- startTime = System.currentTimeMillis();
- }
- RegionParser parser = null;
- if (useXML)
- parser = newXMLParser();
- else
- parser = newParser();
- if (Debug.perfTest) {
- stopTime = System.currentTimeMillis();
- System.out.println("ScanningTests spent " + (stopTime - startTime) + " (msecs) creating a " + parser.getClass().getName());
- }
- // Caution: cast
- parser.reset(new StringReader(stringdata));
- IStructuredDocumentRegion aNode = setNodeDocument(parser.getDocumentRegions());
- if (Debug.perfTest) {
- startTime = System.currentTimeMillis();
- }
- textStore = StructuredDocumentFactory.getNewStructuredDocumentInstance(parser);
- textStore.setText(null, stringdata);
- StructuredDocumentRegionIterator.setParentDocument(aNode, textStore);
- Vector v = new Vector();
- while (aNode != null) {
- v.addElement(aNode);
- aNode = aNode.getNext();
- }
- if (Debug.perfTest) {
- stopTime = System.currentTimeMillis();
- System.out.println("ScanningTests spent " + (stopTime - startTime) + " (msecs) setting text and storing nodes");
- }
- return v;
- }
-
- public static Vector parseFile(String fileName) {
- if (Debug.perfTest) {
- startTime = System.currentTimeMillis();
- }
- if (Debug.perfTest) {
- startTime = System.currentTimeMillis();
- }
- char[] input = loadChars(fileName);
- if (Debug.perfTest) {
- stopTime = System.currentTimeMillis();
- System.out.println("ScanningTests spent " + (stopTime - startTime) + " (msecs) loading " + fileName);
- }
- return parse(new String(input));
- }
-
- private static IStructuredDocumentRegion setNodeDocument(IStructuredDocumentRegion startNode) {
- // Caution: cast
- IStructuredDocumentRegion aNode = startNode;
- while (aNode != null) {
- aNode.setParentDocument(textStore);
- aNode = aNode.getNext();
- }
- return startNode;
- }
-
- public static List tokenizeFile(String fileName) {
- List v = null;
- StringBuffer buff = new StringBuffer();
- try {
- //char[] input = loadChars(fileName);
- Reader input = new FileReader(fileName);
- RegionParser parser = newParser();
- // parser must be given input, before tokenizer is valid
- parser.reset(input);
- int c = 0;
- parser.getDocumentRegions();
- v = parser.getRegions();
- input.reset();
- while ((c = input.read()) >= 0) {
- buff.append((char) c);
- }
- textStore = StructuredDocumentFactory.getNewStructuredDocumentInstance(parser);
- textStore.setText(null, buff.toString());
- }
- catch (FileNotFoundException e) {
- System.out.println("File not found : \"" + fileName + "\"");
- }
- catch (IOException e) {
- }
- catch (ArrayIndexOutOfBoundsException e) {
- System.out.println("Usage : java JSPLexer3 <inputfile>");
- }
- return v;
- }
-
- public static String viewableTokenizeWithSeparator(String data) {
- StringBuffer s = new StringBuffer();
- s.append("\"");
- s.append(data);
- s.append("\"\n");
- s.append(viewableTokenize(data));
- s.append("--------------------------------------------------------------------------------\n");
- return s.toString();
- }
-
- public static String viewableTokenize(String stringdata) {
- return viewableTokenize(stringdata, false);
- }
-
- public static String viewableTokenize(String stringdata, boolean useXML) {
- java.util.List l = parse(stringdata, useXML);
- String s = "";
- for (int i = 0; i < l.size(); i++) {
- IStructuredDocumentRegion node = (IStructuredDocumentRegion) l.get(i);
- try {
- s += StringUtils.escape(node.toString()) + "\n";
- }
- catch (Exception e) {
- s += "[" + node.getStart() + ", " + node.getEnd() + "] (UNPRINTABLE " + e + ")";
- }
- ITextRegionList m = node.getRegions();
- for (int j = 0; j < m.size(); j++)
- if (m.get(j) instanceof ITextRegionContainer) {
- s = s + "\t" + StringUtils.escape(m.get(j).toString()) + "\n";
- ITextRegionList n = ((ITextRegionContainer) m.get(j)).getRegions();
- for (int k = 0; k < n.size(); k++)
- s = s + "\t\t" + StringUtils.escape(n.get(k).toString()) + "\n";
- }
- else
- s = s + "\t" + StringUtils.escape(m.get(j).toString()) + "\n";
- }
- return s;
- }
-
- public static String viewableTokenizeFile(String fileName) {
- if (Debug.perfTest) {
- startTime = System.currentTimeMillis();
- }
- if (Debug.perfTest) {
- startTime = System.currentTimeMillis();
- }
- char[] input = loadChars(fileName);
- if (Debug.perfTest) {
- stopTime = System.currentTimeMillis();
- System.out.println("ScanningTests spent " + (stopTime - startTime) + " (msecs) loading " + fileName);
- }
- return viewableTokenize(new String(input));
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/SimpleNode.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/SimpleNode.java
deleted file mode 100644
index ff3da7df0..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/SimpleNode.java
+++ /dev/null
@@ -1,402 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.other;
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.TypeInfo;
-import org.w3c.dom.UserDataHandler;
-
-/**
- * Insert the type's description here. Creation date: (8/23/2000 9:24:02 PM)
- *
- * @author: Kit Lo
- */
-public class SimpleNode implements Node {
- String fNodeName;
-
- /**
- * SimpleNode constructor comment.
- */
- public SimpleNode() {
- super();
- }
-
- /**
- * SimpleNode constructor comment.
- */
- public SimpleNode(String nodeName) {
- fNodeName = nodeName;
- }
-
- /**
- * appendChild method comment.
- */
- public Node appendChild(Node newChild) throws DOMException {
- return null;
- }
-
- /**
- * cloneNode method comment.
- */
- public Node cloneNode(boolean deep) {
- return null;
- }
-
- /**
- * getAttributes method comment.
- */
- public NamedNodeMap getAttributes() {
- return null;
- }
-
- /**
- * getChildNodes method comment.
- */
- public NodeList getChildNodes() {
- return null;
- }
-
- /**
- * getFirstChild method comment.
- */
- public Node getFirstChild() {
- return null;
- }
-
- /**
- * getLastChild method comment.
- */
- public Node getLastChild() {
- return null;
- }
-
- /**
- * Returns the local part of the qualified name of this node. <br>
- * For nodes of any type other than <code>ELEMENT_NODE</code> and
- * <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1
- * method, such as <code>createElement</code> from the
- * <code>Document</code> interface, this is always <code>null</code>.
- *
- * @ link DOM Level 2
- */
- public String getLocalName() {
- return null;
- }
-
- /**
- * The namespace URI of this node, or <code>null</code> if it is
- * unspecified. <br>
- * This is not a computed value that is the result of a namespace lookup
- * based on an examination of the namespace declarations in scope. It is
- * merely the namespace URI given at creation time. <br>
- * For nodes of any type other than <code>ELEMENT_NODE</code> and
- * <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1
- * method, such as <code>createElement</code> from the
- * <code>Document</code> interface, this is always <code>null</code>.Per
- * the Namespaces in XML Specification an attribute does not inherit its
- * namespace from the element it is attached to. If an attribute is not
- * explicitly given a namespace, it simply has no namespace.
- *
- * @ link DOM Level 2
- */
- public String getNamespaceURI() {
- return null;
- }
-
- /**
- * getNextSibling method comment.
- */
- public Node getNextSibling() {
- return null;
- }
-
- /**
- * getNodeName method comment.
- */
- public String getNodeName() {
- return fNodeName;
- }
-
- /**
- * getNodeType method comment.
- */
- public short getNodeType() {
- return (short) 0;
- }
-
- /**
- * getNodeValue method comment.
- */
- public String getNodeValue() throws DOMException {
- return "NodeValue";
- }
-
- /**
- * getOwnerDocument method comment.
- */
- public Document getOwnerDocument() {
- return null;
- }
-
- /**
- * getParentNode method comment.
- */
- public Node getParentNode() {
- return null;
- }
-
- /**
- * The namespace prefix of this node, or <code>null</code> if it is
- * unspecified. <br>
- * Note that setting this attribute, when permitted, changes the
- * <code>nodeName</code> attribute, which holds the qualified name, as
- * well as the <code>tagName</code> and <code>name</code> attributes
- * of the <code>Element</code> and <code>Attr</code> interfaces, when
- * applicable. <br>
- * Note also that changing the prefix of an attribute that is known to
- * have a default value, does not make a new attribute with the default
- * value and the original prefix appear, since the
- * <code>namespaceURI</code> and <code>localName</code> do not change.
- * <br>
- * For nodes of any type other than <code>ELEMENT_NODE</code> and
- * <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1
- * method, such as <code>createElement</code> from the
- * <code>Document</code> interface, this is always <code>null</code>.
- *
- * @exception DOMException
- * INVALID_CHARACTER_ERR: Raised if the specified prefix
- * contains an illegal character. <br>
- * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
- * readonly. <br>
- * NAMESPACE_ERR: Raised if the specified
- * <code>prefix</code> is malformed, if the
- * <code>namespaceURI</code> of this node is
- * <code>null</code>, if the specified prefix is "xml"
- * and the <code>namespaceURI</code> of this node is
- * different from " http://www.w3.org/XML/1998/namespace",
- * if this node is an attribute and the specified prefix is
- * "xmlns" and the <code>namespaceURI</code> of this node
- * is different from " http://www.w3.org/2000/xmlns/", or
- * if this node is an attribute and the
- * <code>qualifiedName</code> of this node is "xmlns" .
- * @ link DOM Level 2
- */
- public String getPrefix() {
- return null;
- }
-
- /**
- * getPreviousSibling method comment.
- */
- public Node getPreviousSibling() {
- return null;
- }
-
- /**
- * Returns whether this node (if it is an element) has any attributes.
- *
- * @return <code>true</code> if this node has any attributes,
- * <code>false</code> otherwise.
- * @ link DOM Level 2
- */
- public boolean hasAttributes() {
- return false;
- }
-
- /**
- * hasChildNodes method comment.
- */
- public boolean hasChildNodes() {
- return false;
- }
-
- /**
- * insertBefore method comment.
- */
- public Node insertBefore(Node newChild, Node refChild) throws DOMException {
- return null;
- }
-
- /**
- * Tests whether the DOM implementation implements a specific feature and
- * that feature is supported by this node.
- *
- * @param featureThe
- * name of the feature to test. This is the same name which can
- * be passed to the method <code>hasFeature</code> on
- * <code>DOMImplementation</code>.
- * @param versionThis
- * is the version number of the feature to test. In Level 2,
- * version 1, this is the string "2.0". If the version is not
- * specified, supporting any version of the feature will cause
- * the method to return <code>true</code>.
- * @return Returns <code>true</code> if the specified feature is
- * supported on this node, <code>false</code> otherwise.
- * @ link DOM Level 2
- */
- public boolean isSupported(String feature, String version) {
- return false;
- }
-
- /**
- * Puts all <code>Text</code> nodes in the full depth of the sub-tree
- * underneath this <code>Node</code>, including attribute nodes, into a
- * "normal" form where only structure (e.g., elements, comments,
- * processing instructions, CDATA sections, and entity references)
- * separates <code>Text</code> nodes, i.e., there are neither adjacent
- * <code>Text</code> nodes nor empty <code>Text</code> nodes. This can
- * be used to ensure that the DOM view of a document is the same as if it
- * were saved and re-loaded, and is useful when operations (such as
- * XPointer lookups) that depend on a particular document tree structure
- * are to be used.In cases where the document contains
- * <code>CDATASections</code>, the normalize operation alone may not be
- * sufficient, since XPointers do not differentiate between
- * <code>Text</code> nodes and <code>CDATASection</code> nodes.
- *
- * @version DOM Level 2
- */
- public void normalize() {
- }
-
- /**
- * removeChild method comment.
- */
- public Node removeChild(Node oldChild) throws DOMException {
- return null;
- }
-
- /**
- * replaceChild method comment.
- */
- public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
- return null;
- }
-
- /**
- * setNodeValue method comment.
- */
- public void setNodeValue(String nodeValue) throws DOMException {
- }
-
- /**
- * setPrefix method comment.
- */
- public void setPrefix(String prefix) throws DOMException {
- }
-
- public String toString() {
- return getNodeName();
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public short compareDocumentPosition(Node other) throws DOMException {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public String getBaseURI() {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public Object getFeature(String feature, String version) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public String getTextContent() throws DOMException {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public Object getUserData(String key) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public boolean isDefaultNamespace(String namespaceURI) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public boolean isEqualNode(Node arg) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public boolean isSameNode(Node other) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public String lookupNamespaceURI(String prefix) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public String lookupPrefix(String namespaceURI) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public void setTextContent(String textContent) throws DOMException {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public Object setUserData(String key, Object data, UserDataHandler handler) {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public TypeInfo getSchemaTypeInfo() {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
- /**
- * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
- */
- public boolean isId() {
- throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version.");
- }
-
-
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/StructuredDocumentToDOMUnitTests.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/StructuredDocumentToDOMUnitTests.java
deleted file mode 100644
index 3a3910760..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/StructuredDocumentToDOMUnitTests.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.other;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.jst.jsp.ui.tests.Logger;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.internal.provisional.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.document.DOMModelImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class StructuredDocumentToDOMUnitTests implements IStructuredDocumentListener {
- public StructuredDocumentToDOMUnitTests() {
- super();
- }
-
- String getTestString1() {
- return "<a>a<b />b</a>"; // -> <a>ab</a>;
- }
-
- String getTestString2() {
- return "<menu>\n<rname>\nLiam's Chowder House and Grill\n</rname>\n</menu>";
- }
-
- String getTestString3() {
- // return " <?xml version=\"1.0\" ?>\n
- // <testTopSibling><p>text</p></testTopSibling>";
- return "<test/>\n\n <html>\n</html>";
- }
-
- String getTestString4() {
- return "<?xml version=\"1.0\" ?>";
- }
-
- /**
- *
- * @param args
- * java.lang.String[]
- */
- public static void main(String[] args) {
-
- try {
- StructuredDocumentToDOMUnitTests instance = new StructuredDocumentToDOMUnitTests();
- instance.testNodeDeletion4();
- }
- catch (Exception t) {
- t.printStackTrace();
- }
- }
-
- void makeChange1(IDOMModel tree) {
-
- //
- // pick a parent and ones of its children to delete
- // (note: validity of this code is highly dependent on input string)
- org.w3c.dom.Document dom = tree.getDocument();
- NodeList nodes = dom.getChildNodes();
- //
- /*
- * for "first" test case Node testParentNode = nodes.item(0); Node
- * testChildNode = testParentNode.getFirstChild();
- */
- // for "second" test case
- Node testParentNode = nodes.item(0);
- Node testChildNode = testParentNode.getFirstChild();
- testChildNode = testChildNode.getNextSibling();
-
- testParentNode.removeChild(testChildNode);
-
- }
-
- void makeChange2(IStructuredDocument structuredDocument) {
-
- // delete the apostrope in test string // 4, 4?
- structuredDocument.replaceText(this, 19, 1, null);
- }
-
- void makeChange3(IDOMModel tree) {
-
- //
- // pick a parent and ones of its children to delete
- // (note: validity of this code is highly dependent on input string)
- org.w3c.dom.Document dom = tree.getDocument();
- // NodeList nodes = dom.getChildNodes();
- //
- Node testChildNode = dom.getLastChild();
-
- dom.removeChild(testChildNode);
-
- }
-
- /**
- * newModel method comment.
- */
- public void newModel(NewDocumentEvent structuredDocumentEvent) {
- System.out.println("newModel:");
- }
-
- /**
- * noChange method comment.
- */
- public void noChange(NoChangeEvent structuredDocumentEvent) {
- // log for now, unless we find reason not to
- Logger.log(Logger.INFO, "StructuredDocumentToDOMUnitTests::noChange needs to be implemented");
- }
-
- /**
- * nodesReplaced method comment.
- */
- public void nodesReplaced(StructuredDocumentRegionsReplacedEvent structuredDocumentEvent) {
- System.out.println("nodesReplaced:");
- System.out.println("\tNewFlatNodes:");
- IStructuredDocumentRegionList flatNodeList = structuredDocumentEvent.getNewStructuredDocumentRegions();
- int len = flatNodeList.getLength();
- for (int i = 0; i < len; i++) {
- String outString = flatNodeList.item(i).toString();
- outString = StringUtils.escape(outString);
- System.out.println("\t\t" + outString);
- }
- System.out.println("\tOldFlatNodes:");
- flatNodeList = structuredDocumentEvent.getOldStructuredDocumentRegions();
- len = flatNodeList.getLength();
- for (int i = 0; i < len; i++) {
- String outString = flatNodeList.item(i).toString();
- outString = StringUtils.escape(outString);
- System.out.println("\t\t" + outString);
- }
- }
-
- /**
- * regionChanged method comment.
- */
- public void regionChanged(RegionChangedEvent structuredDocumentEvent) {
- System.out.println("regionChanged:");
- }
-
- /**
- * regionsReplaced method comment.
- */
- public void regionsReplaced(RegionsReplacedEvent structuredDocumentEvent) {
- System.out.println("regionsReplaced:");
- }
-
- /**
- * Unit test -- tests basic parsing results of inserting a test string
- * into an initial string.
- */
- void testNodeDeletion() {
- // String initialString =
- // "<par><x>\ntextx\n</x>\n<y>\ntexty\n</y></par>";
- // String initialString = "<par><x>textx</x><y>texty</y></par>";
- // test cases for two text nodes left together (remove <b/>):
- // first case works, second doesn't
- // String initialString = "<a>a<b /></a>"; // -> <a>a</a>
- // String initialString = "<a>a<b />b</a>"; // -> <a>ab</a>
- // String initialString = getTestString1();
- String initialString = getTestString2();
-
- // print out what we always can
- System.out.println();
- System.out.println("----------------");
- System.out.println("Test Node Deletion");
- String outString = StringUtils.escape(initialString);
- System.out.println("Initial String: " + outString);
- // always start with fresh model
- IStructuredDocument f = null;
-
- IModelManager mm = StructuredModelManager.getModelManager();
- try {
- f = mm.createStructuredDocumentFor("dummy.xml", (InputStream) null, null);
- }
- catch (IOException e) {
- // do nothing, since dummy
- }
-
-
- //
- // we'll listen to structuredDocument events to print out diagnostics
- f.addDocumentChangedListener(this);
- //
-
- IDOMModel tree = new DOMModelImpl();
- f.addDocumentChangingListener((IStructuredDocumentListener) tree);
-
- // set text to structuredDocument (which updates tree)
- f.setText(null, initialString);
-
- // dump initial structuredDocument
- Debug.dump(f);
- // dump initial dom
- DebugDocument.dump(tree.getDocument());
- //
- //
- // makeChange1(tree);
- makeChange2(f);
-
- // display resulting text
- System.out.println("resultString (from structuredDocument): ");
- System.out.println(StringUtils.escape(f.getText()));
- //
- //
- // dump post change structuredDocument
- Debug.dump(f);
- // dump post change DOM
- DebugDocument.dump(tree.getDocument());
-
- //
-
- }
-
- /**
- * Unit test -- tests basic parsing results of inserting a test string
- * into an initial string.
- */
- void testNodeDeletion3() {
- String initialString = getTestString3();
-
- // print out what we always can
- System.out.println();
- System.out.println("----------------");
- System.out.println("Test Node Deletion");
- String outString = StringUtils.escape(initialString);
- System.out.println("Initial String: " + outString);
- // always start with fresh model
- IStructuredDocument f = null;
-
- IModelManager mm = StructuredModelManager.getModelManager();
- try {
- f = mm.createStructuredDocumentFor("dummy.xml", (InputStream) null, null);
- }
- catch (IOException e) {
- // do nothing, since dummy
- }
- //
- // we'll listen to structuredDocument events to print out diagnostics
- f.addDocumentChangedListener(this);
- //
-
- IDOMModel tree = new DOMModelImpl();
- f.addDocumentChangingListener((IStructuredDocumentListener) tree);
-
- // set text to structuredDocument (which updates tree)
- f.setText(null, initialString);
-
- // dump initial structuredDocument
- Debug.dump(f);
- // dump initial dom
- DebugDocument.dump(tree.getDocument());
- //
- //
- // makeChange1(tree);
- makeChange3(tree);
-
- // display resulting text
- System.out.println("resultString (from structuredDocument): ");
- System.out.println(StringUtils.escape(f.getText()));
- //
- //
- // dump post change structuredDocument
- Debug.dump(f);
- // dump post change DOM
- DebugDocument.dump(tree.getDocument());
-
- //
-
- }
-
- /**
- * Unit test -- test insert followed by delete at beginning of string.
- */
- void testNodeDeletion4() {
- String initialString = getTestString4();
-
- // print out what we always can
- System.out.println();
- System.out.println("----------------");
- System.out.println("Test Node Insert and Delete");
- String outString = StringUtils.escape(initialString);
- System.out.println("Initial String: " + outString);
- // always start with fresh model
- IStructuredDocument f = null;
-
- IModelManager mm = StructuredModelManager.getModelManager();
- try {
- f = mm.createStructuredDocumentFor("dummy.xml", (InputStream) null, null);
- }
- catch (IOException e) {
- // do nothing, since dummy
- }
- //
- // we'll listen to structuredDocument events to print out diagnostics
- f.addDocumentChangedListener(this);
- //
-
- IDOMModel tree = new DOMModelImpl();
- f.addDocumentChangingListener((IStructuredDocumentListener) tree);
-
- // set text to structuredDocument (which updates tree)
- f.setText(null, initialString);
-
- // dump initial structuredDocument
- Debug.dump(f);
- // dump initial dom
- DebugDocument.dump(tree.getDocument());
- //
- //
- f.replaceText(null, 0, 0, "a");
-
- System.out.println(" ==== Results after insert");
- // display resulting text
- System.out.println("resultString (from structuredDocument): ");
- System.out.println(StringUtils.escape(f.getText()));
- //
- //
- // dump post change structuredDocument
- Debug.dump(f);
- // dump post change DOM
- DebugDocument.dump(tree.getDocument());
-
- //
-
- f.replaceText(null, 0, 1, "");
-
- System.out.println(" ==== Results after delete");
- // display resulting text
- System.out.println("resultString (from structuredDocument): ");
- System.out.println(StringUtils.escape(f.getText()));
- //
- //
- // dump post change structuredDocument
- Debug.dump(f);
- // dump post change DOM
- DebugDocument.dump(tree.getDocument());
-
- //
-
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/StyledTextContentSpec.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/StyledTextContentSpec.java
deleted file mode 100644
index 3aa6e0cd8..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/StyledTextContentSpec.java
+++ /dev/null
@@ -1,951 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.other;
-
-/**
- * Use this test class to validate an implementation of the StyledTextContent
- * interface. To perform the validation, copy this class to the package where
- * your StyledTextContent implementation lives. Then specify the fully
- * qualified name of your StyledTextContent class as an argument to the main
- * method of this class.
- *
- * NOTE: This test class assumes that your StyledTextContent implementation
- * handles the following delimiters:
- * /r /n /r/n
- *
- */
-// This class comes courtesy of Lynne Kues. Our StyledTextContent fails test
-// cases 6x of
-// "Special cases" since we (nor JFace) handle insertion between CR and LF. A
-// minor modification
-// was needed to getContentInstance for out version of StyleTextContent
-// (StructuredDocumentToTextAdapter).
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.custom.StyledTextContent;
-import org.eclipse.swt.custom.TextChangeListener;
-import org.eclipse.swt.custom.TextChangedEvent;
-import org.eclipse.swt.custom.TextChangingEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.ui.internal.StructuredDocumentToTextAdapter;
-
-public class StyledTextContentSpec implements TextChangeListener {
- static String contentClassName;
- static int failCount = 0;
- static int errorCount = 0;
- Class contentClass = null;
- StyledTextContent contentInstance = null;
- int verify = 0;
- Method currentMethod = null;
- boolean failed = false;
- StyledText widget = null;
- Shell shell = null;
-
- public StyledTextContentSpec() {
- }
-
- public void assertWithMessage(String message, boolean condition) {
- System.out.print("\t" + currentMethod.getName() + " " + message);
- if (!condition)
- fail(message);
- else
- System.out.println(" passed");
- }
-
- public void fail(String message) {
- failed = true;
- System.out.println(" FAILED");
- failCount++;
- }
-
- public StyledTextContent getContentInstance() {
- contentInstance.setText("");
- widget.setContent(contentInstance);
- // dw. Had to add for our special version of StyledTextContent
- // Needs to be removed for testing jface's DocumentAdapter
- ((StructuredDocumentToTextAdapter) contentInstance).setWidget(widget);
- return contentInstance;
- }
-
- public static String getTestText() {
- return "This is the first line.\r\n" + "This is the second line.\r\n" + "This is the third line.\r\n" + "This is the fourth line.\r\n" + "This is the fifth line.\r\n" + "\r\n" + "This is the first line again.\r\n" + "This is the second line again.\r\n" + "This is the third line again.\r\n" + "This is the fourth line again.\r\n" + "This is the fifth line again.\r\n" + "\r\n" + "This is the first line once again.\r\n" + "This is the second line once again.\r\n" + "This is the third line once again.\r\n" + "This is the fourth line once again.\r\n" + "This is the fifth line once again.";
- }
-
- public static void main(String[] args) {
- StyledTextContentSpec spec = new StyledTextContentSpec();
- if (args.length > 0) {
- contentClassName = args[0];
- //String path = System.getProperty("java.library.path");
- //System.out.println("Java Library Path: " + path);
- }
- else {
- MessageBox box = new MessageBox(getDisplay().getActiveShell(), SWT.ICON_ERROR);
- box.setMessage("Content class must be specified as an execution argument."); //$NON-NLS-1$
- box.open();
- return;
- }
- spec.run();
- System.out.println();
- System.out.println(failCount + " TEST FAILURES.");
- System.out.println(errorCount + " UNEXPECTED ERRORS.");
- }
-
- static private Display getDisplay() {
- return PlatformUI.getWorkbench().getDisplay();
- }
-
- public void run() {
- if (contentClassName.equals("")) {
- MessageBox box = new MessageBox(getDisplay().getActiveShell(), SWT.ICON_ERROR);
- box.setMessage("Content class must be specified as an execution argument."); //$NON-NLS-1$
- box.open();
- return;
- }
- if (contentClass == null) {
- try {
- contentClass = Class.forName(contentClassName);
- }
- catch (ClassNotFoundException e) {
- MessageBox box = new MessageBox(getDisplay().getActiveShell(), SWT.ICON_ERROR);
- box.setMessage("Content class:\n" + contentClassName + "\nnot found"); //$NON-NLS-1$
- box.open();
- return;
- }
- }
- try {
- contentInstance = (StyledTextContent) contentClass.newInstance();
- }
- catch (IllegalAccessException e) {
- MessageBox box = new MessageBox(getDisplay().getActiveShell(), SWT.ICON_ERROR);
- box.setMessage("Unable to access content class:\n" + contentClassName); //$NON-NLS-1$
- box.open();
- return;
- }
- catch (InstantiationException e) {
- MessageBox box = new MessageBox(getDisplay().getActiveShell(), SWT.ICON_ERROR);
- box.setMessage("Unable to instantiate content class:\n" + contentClassName); //$NON-NLS-1$
- box.open();
- return;
- }
- Class clazz;
- clazz = this.getClass();
- Method[] methods = clazz.getDeclaredMethods();
- for (int i = 0; i < methods.length; i++) {
- setUp();
- currentMethod = methods[i];
- failed = false;
- try {
- if (currentMethod.getName().startsWith("test_")) {
- System.out.println();
- System.out.println(currentMethod.getName() + "...");
- currentMethod.invoke(this, new Object[0]);
- if (!failed) {
- System.out.println("PASSED.");
- }
- else {
- System.out.println("FAILED");
- }
- }
- }
- catch (InvocationTargetException ex) {
- System.out.println("\t" + currentMethod.getName() + " ERROR ==> " + ex.getTargetException().toString());
- System.out.println("FAILED");
- errorCount++;
- }
- catch (Exception ex) {
- System.out.println("\t" + currentMethod.getName() + " ERROR ==> " + ex.toString());
- System.out.println("FAILED");
- errorCount++;
- }
- if (verify != 0) {
- verify = 0;
- contentInstance.removeTextChangeListener(this);
- }
- tearDown();
- }
- }
-
- protected void setUp() {
- // create shell
- shell = new Shell();
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- shell.setSize(500, 300);
- shell.setLayout(layout);
- // create widget
- widget = new StyledText(shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
- GridData spec = new GridData();
- spec.horizontalAlignment = GridData.FILL;
- spec.grabExcessHorizontalSpace = true;
- spec.verticalAlignment = GridData.FILL;
- spec.grabExcessVerticalSpace = true;
- widget.setLayoutData(spec);
- shell.open();
- }
-
- protected void tearDown() {
- if (shell != null && !shell.isDisposed())
- shell.dispose();
- shell = null;
- }
-
- public void test_Delete() {
- StyledTextContent content = getContentInstance();
- String newText;
- content.setText("This\nis a test\r");
- content.replaceTextRange(6, 2, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":1a:", newText.equals("This\nia test\r"));
- assertWithMessage(":1b:", content.getLine(0).equals("This"));
- assertWithMessage(":1c:", content.getLine(1).equals("ia test"));
- content.setText("This\nis a test\r");
- content.replaceTextRange(5, 9, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":2a:", newText.equals("This\n\r"));
- assertWithMessage(":2b:", content.getLineCount() == 3);
- assertWithMessage(":2c:", content.getLine(0).equals("This"));
- assertWithMessage(":2d:", content.getLine(1).equals(""));
- assertWithMessage(":2e:", content.getLine(2).equals(""));
- content.setText("This\nis a test\nline 3\nline 4");
- content.replaceTextRange(21, 7, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":3a:", newText.equals("This\nis a test\nline 3"));
- assertWithMessage(":3b:", content.getLineCount() == 3);
- assertWithMessage(":3c:", content.getLine(0).equals("This"));
- assertWithMessage(":3d:", content.getLine(1).equals("is a test"));
- assertWithMessage(":3e:", content.getLine(2).equals("line 3"));
- content.setText("This\nis a test\nline 3\nline 4");
- content.replaceTextRange(0, 5, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":4a:", newText.equals("is a test\nline 3\nline 4"));
- assertWithMessage(":4b:", content.getLineCount() == 3);
- assertWithMessage(":4c:", content.getLine(0).equals("is a test"));
- assertWithMessage(":4d:", content.getLine(1).equals("line 3"));
- assertWithMessage(":4e:", content.getLine(2).equals("line 4"));
- content.replaceTextRange(16, 7, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":4f:", newText.equals("is a test\nline 3"));
- assertWithMessage(":4g:", content.getLine(0).equals("is a test"));
- assertWithMessage(":4h:", content.getLine(1).equals("line 3"));
- content.replaceTextRange(9, 7, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":4i:", newText.equals("is a test"));
- assertWithMessage(":4j:", content.getLine(0).equals("is a test"));
- content.replaceTextRange(1, 8, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":4k:", newText.equals("i"));
- assertWithMessage(":4l:", content.getLine(0).equals("i"));
- content.replaceTextRange(0, 1, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":4m:", newText.equals(""));
- assertWithMessage(":4n:", content.getLine(0).equals(""));
- content.setText("This\nis a test\r");
- content.replaceTextRange(5, 9, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":5a:", newText.equals("This\n\r"));
- assertWithMessage(":5b:", content.getLineCount() == 3);
- assertWithMessage(":5c:", content.getLine(0).equals("This"));
- assertWithMessage(":5d:", content.getLine(1).equals(""));
- assertWithMessage(":5e:", content.getLine(2).equals(""));
- content.setText("L1\r\nL2\r\nL3\r\nL4\r\n");
- content.replaceTextRange(4, 8, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":6a:", newText.equals("L1\r\nL4\r\n"));
- assertWithMessage(":6b:", content.getLineCount() == 3);
- assertWithMessage(":6c:", content.getLine(0).equals("L1"));
- assertWithMessage(":6d:", content.getLine(1).equals("L4"));
- assertWithMessage(":6e:", content.getLine(2).equals(""));
- content.setText("\nL1\r\nL2");
- content.replaceTextRange(0, 1, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":7a:", newText.equals("L1\r\nL2"));
- assertWithMessage(":7b:", content.getLineCount() == 2);
- assertWithMessage(":7c:", content.getLine(0).equals("L1"));
- assertWithMessage(":7d:", content.getLine(1).equals("L2"));
- content.setText("\nL1\r\nL2\r\n");
- content.replaceTextRange(7, 2, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":8a:", newText.equals("\nL1\r\nL2"));
- assertWithMessage(":8b:", content.getLineCount() == 3);
- assertWithMessage(":8c:", content.getLine(0).equals(""));
- assertWithMessage(":8d:", content.getLine(1).equals("L1"));
- assertWithMessage(":8e:", content.getLine(2).equals("L2"));
- content.setText("\nLine 1\nLine 2\n");
- content.replaceTextRange(0, 7, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":9a:", newText.equals("\nLine 2\n"));
- assertWithMessage(":9b:", content.getLineCount() == 3);
- assertWithMessage(":9c:", content.getLine(0).equals(""));
- assertWithMessage(":9d:", content.getLine(1).equals("Line 2"));
- assertWithMessage(":9e:", content.getLine(2).equals(""));
- content.setText("Line 1\nLine 2\n");
- content.replaceTextRange(6, 8, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":10a:", newText.equals("Line 1"));
- assertWithMessage(":10b:", content.getLineCount() == 1);
- assertWithMessage(":10c:", content.getLine(0).equals("Line 1"));
- content.setText("Line one is short\r\nLine 2 is a longer line\r\nLine 3\n");
- content.replaceTextRange(12, 17, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":11a:", newText.equals("Line one is a longer line\r\nLine 3\n"));
- assertWithMessage(":11b:", content.getLineCount() == 3);
- assertWithMessage(":11c:", content.getLine(0).equals("Line one is a longer line"));
- assertWithMessage(":11d:", content.getLine(1).equals("Line 3"));
- assertWithMessage(":11e:", content.getLine(2).equals(""));
- }
-
- public void test_Empty() {
- StyledTextContent content = getContentInstance();
- assertWithMessage(":1a:", content.getLineCount() == 1);
- assertWithMessage(":1b:", content.getLine(0).equals(""));
- content.setText("test");
- content.replaceTextRange(0, 4, "");
- assertWithMessage(":2a:", content.getLineCount() == 1);
- assertWithMessage(":2b:", content.getLine(0).equals(""));
- }
-
- public void test_Insert() {
- StyledTextContent content = getContentInstance();
- String newText;
- content.setText("This\nis a test\r");
- content.replaceTextRange(0, 0, "test\n ");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":1a:", newText.equals("test\n This\nis a test\r"));
- assertWithMessage(":1b:", content.getLineCount() == 4);
- assertWithMessage(":1c:", content.getLine(0).equals("test"));
- assertWithMessage(":1d:", content.getLine(1).equals(" This"));
- assertWithMessage(":1e:", content.getLine(2).equals("is a test"));
- assertWithMessage(":1f:", content.getLine(3).equals(""));
- content.setText("This\nis a test\r");
- content.replaceTextRange(5, 0, "*** ");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":2a:", newText.equals("This\n*** is a test\r"));
- assertWithMessage(":2b:", content.getLineCount() == 3);
- assertWithMessage(":2c:", content.getLine(0).equals("This"));
- assertWithMessage(":2d:", content.getLine(1).equals("*** is a test"));
- assertWithMessage(":2e:", content.getLine(2).equals(""));
- content.setText("Line 1\r\nLine 2");
- content.replaceTextRange(0, 0, "\r");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":3a:", newText.equals("\rLine 1\r\nLine 2"));
- assertWithMessage(":3b:", content.getLineCount() == 3);
- assertWithMessage(":3c:", content.getLine(0).equals(""));
- assertWithMessage(":3d:", content.getLine(1).equals("Line 1"));
- assertWithMessage(":3e:", content.getLine(2).equals("Line 2"));
- content.replaceTextRange(9, 0, "\r");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":3f:", newText.equals("\rLine 1\r\n\rLine 2"));
- assertWithMessage(":3g:", content.getLineCount() == 4);
- assertWithMessage(":3h:", content.getLine(0).equals(""));
- assertWithMessage(":3i:", content.getLine(1).equals("Line 1"));
- assertWithMessage(":3j:", content.getLine(2).equals(""));
- assertWithMessage(":3k:", content.getLine(3).equals("Line 2"));
- content.setText("This\nis a test\r");
- content.replaceTextRange(0, 0, "\n");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":4a:", newText.equals("\nThis\nis a test\r"));
- assertWithMessage(":4b:", content.getLineCount() == 4);
- assertWithMessage(":4c:", content.getLine(0).equals(""));
- assertWithMessage(":4d:", content.getLine(1).equals("This"));
- assertWithMessage(":4e:", content.getLine(2).equals("is a test"));
- assertWithMessage(":4f:", content.getLine(3).equals(""));
- content.setText("This\nis a test\r");
- content.replaceTextRange(7, 0, "\r\nnewLine");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":5a:", newText.equals("This\nis\r\nnewLine a test\r"));
- assertWithMessage(":5b:", content.getLineCount() == 4);
- assertWithMessage(":5c:", content.getLine(0).equals("This"));
- assertWithMessage(":5d:", content.getLine(1).equals("is"));
- assertWithMessage(":5e:", content.getLine(2).equals("newLine a test"));
- assertWithMessage(":5f:", content.getLine(3).equals(""));
- content.setText("");
- content.replaceTextRange(0, 0, "This\nis\r\nnewLine a test\r");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":6a:", newText.equals("This\nis\r\nnewLine a test\r"));
- assertWithMessage(":6b:", content.getLineCount() == 4);
- assertWithMessage(":6c:", content.getLine(0).equals("This"));
- assertWithMessage(":6d:", content.getLine(1).equals("is"));
- assertWithMessage(":6e:", content.getLine(2).equals("newLine a test"));
- assertWithMessage(":6f:", content.getLine(3).equals(""));
- // insert at end
- content.setText("This");
- content.replaceTextRange(4, 0, "\n ");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":7a:", newText.equals("This\n "));
- assertWithMessage(":7b:", content.getLineCount() == 2);
- assertWithMessage(":7c:", content.getLine(0).equals("This"));
- assertWithMessage(":7d:", content.getLine(1).equals(" "));
- content.setText("This\n");
- content.replaceTextRange(5, 0, "\n");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":7e:", newText.equals("This\n\n"));
- assertWithMessage(":7f:", content.getLineCount() == 3);
- assertWithMessage(":7g:", content.getLine(0).equals("This"));
- assertWithMessage(":7h:", content.getLine(1).equals(""));
- assertWithMessage(":7i:", content.getLine(2).equals(""));
- // insert at beginning
- content.setText("This");
- content.replaceTextRange(0, 0, "\n");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":8a:", newText.equals("\nThis"));
- assertWithMessage(":8b:", content.getLineCount() == 2);
- assertWithMessage(":8c:", content.getLine(0).equals(""));
- assertWithMessage(":8d:", content.getLine(1).equals("This"));
- // insert text
- content.setText("This\nis a test\r");
- content.replaceTextRange(5, 0, "*** ");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":9a:", newText.equals("This\n*** is a test\r"));
- assertWithMessage(":9b:", content.getLineCount() == 3);
- assertWithMessage(":9c:", content.getLine(0).equals("This"));
- assertWithMessage(":9d:", content.getLine(1).equals("*** is a test"));
- assertWithMessage(":9e:", content.getLine(2).equals(""));
- content.setText("This\n");
- content.replaceTextRange(5, 0, "line");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":10a:", newText.equals("This\nline"));
- assertWithMessage(":10b:", content.getLineCount() == 2);
- assertWithMessage(":10c:", content.getLine(0).equals("This"));
- assertWithMessage(":10d:", content.getLine(1).equals("line"));
- assertWithMessage(":10e:", content.getLineAtOffset(8) == 1);
- assertWithMessage(":10f:", content.getLineAtOffset(9) == 1);
- // insert at beginning
- content.setText("This\n");
- content.replaceTextRange(0, 0, "line\n");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":11a:", newText.equals("line\nThis\n"));
- assertWithMessage(":11b:", content.getLineCount() == 3);
- assertWithMessage(":11c:", content.getLine(0).equals("line"));
- assertWithMessage(":11d:", content.getLine(1).equals("This"));
- assertWithMessage(":11e:", content.getLineAtOffset(5) == 1);
- content.setText("Line 1\r\nLine 2\r\nLine 3");
- content.replaceTextRange(0, 0, "\r");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":12a:", newText.equals("\rLine 1\r\nLine 2\r\nLine 3"));
- assertWithMessage(":12b:", content.getLineCount() == 4);
- assertWithMessage(":12c:", content.getLine(0).equals(""));
- assertWithMessage(":12d:", content.getLine(1).equals("Line 1"));
- assertWithMessage(":12e:", content.getLine(2).equals("Line 2"));
- assertWithMessage(":12f:", content.getLine(3).equals("Line 3"));
- content.setText("Line 1\nLine 2\nLine 3");
- content.replaceTextRange(7, 0, "Line1a\nLine1b\n");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":13a:", newText.equals("Line 1\nLine1a\nLine1b\nLine 2\nLine 3"));
- assertWithMessage(":13b:", content.getLineCount() == 5);
- assertWithMessage(":13c:", content.getLine(0).equals("Line 1"));
- assertWithMessage(":13d:", content.getLine(1).equals("Line1a"));
- assertWithMessage(":13e:", content.getLine(2).equals("Line1b"));
- assertWithMessage(":13f:", content.getLine(3).equals("Line 2"));
- assertWithMessage(":13g:", content.getLine(4).equals("Line 3"));
- content.setText("Line 1\nLine 2\nLine 3");
- content.replaceTextRange(11, 0, "l1a");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":14a:", newText.equals("Line 1\nLinel1a 2\nLine 3"));
- assertWithMessage(":14b:", content.getLineCount() == 3);
- assertWithMessage(":14c:", content.getLine(0).equals("Line 1"));
- assertWithMessage(":14d:", content.getLine(1).equals("Linel1a 2"));
- assertWithMessage(":14e:", content.getLine(2).equals("Line 3"));
- content.setText("Line 1\nLine 2 is a very long line that spans many words\nLine 3");
- content.replaceTextRange(19, 0, "very, very, ");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":15a:", newText.equals("Line 1\nLine 2 is a very, very, very long line that spans many words\nLine 3"));
- assertWithMessage(":15b:", content.getLineCount() == 3);
- assertWithMessage(":15c:", content.getLine(0).equals("Line 1"));
- assertWithMessage(":15d:", content.getLine(1).equals("Line 2 is a very, very, very long line that spans many words"));
- assertWithMessage(":15e:", content.getLine(2).equals("Line 3"));
- }
-
- public void test_Line_Conversion() {
- StyledTextContent content = getContentInstance();
- content.setText("This\nis a test\rrepeat\nend\r");
- assertWithMessage(":1a:", content.getLineCount() == 5);
- assertWithMessage(":1b:", content.getLine(0).equals("This"));
- assertWithMessage(":1c:", content.getOffsetAtLine(0) == 0);
- assertWithMessage(":1d:", content.getLine(1).equals("is a test"));
- assertWithMessage(":1e:", content.getLineAtOffset(4) == 0);
- assertWithMessage(":1f:", content.getOffsetAtLine(1) == 5);
- assertWithMessage(":1g:", content.getLine(2).equals("repeat"));
- assertWithMessage(":1h:", content.getOffsetAtLine(2) == 15);
- assertWithMessage(":1i:", content.getLine(3).equals("end"));
- assertWithMessage(":1j:", content.getOffsetAtLine(3) == 22);
- assertWithMessage(":1k:", content.getLine(4).equals(""));
- assertWithMessage(":1l:", content.getOffsetAtLine(4) == 26);
- content.setText("This\r\nis a test");
- assertWithMessage(":2a:", content.getLineCount() == 2);
- assertWithMessage(":2b:", content.getLine(1).equals("is a test"));
- assertWithMessage(":2c:", content.getLineAtOffset(4) == 0);
- assertWithMessage(":2d:", content.getLineAtOffset(5) == 0);
- content.setText("This\r\nis a test\r");
- assertWithMessage(":3a:", content.getLineCount() == 3);
- assertWithMessage(":3b:", content.getLine(1).equals("is a test"));
- assertWithMessage(":3c:", content.getLineAtOffset(15) == 1);
- content.setText("\r\n");
- assertWithMessage(":4a:", content.getLineCount() == 2);
- assertWithMessage(":4b:", content.getLine(0).equals(""));
- assertWithMessage(":4c:", content.getLine(1).equals(""));
- assertWithMessage(":4d:", content.getLineAtOffset(0) == 0);
- assertWithMessage(":4e:", content.getLineAtOffset(1) == 0);
- assertWithMessage(":4f:", content.getLineAtOffset(2) == 1);
- content.setText("\r\n\n\r\r\n");
- assertWithMessage(":5a:", content.getLineCount() == 5);
- assertWithMessage(":5b:", content.getLine(0).equals(""));
- assertWithMessage(":5c:", content.getOffsetAtLine(0) == 0);
- assertWithMessage(":5d:", content.getLine(1).equals(""));
- assertWithMessage(":5e:", content.getOffsetAtLine(1) == 2);
- assertWithMessage(":5f:", content.getLine(2).equals(""));
- assertWithMessage(":5g:", content.getOffsetAtLine(2) == 3);
- assertWithMessage(":5h:", content.getLine(3).equals(""));
- assertWithMessage(":5i:", content.getOffsetAtLine(3) == 4);
- assertWithMessage(":5j:", content.getLine(4).equals(""));
- assertWithMessage(":5k:", content.getOffsetAtLine(4) == 6);
- content.setText("test\r\rtest2\r\r");
- assertWithMessage(":6a:", content.getLineCount() == 5);
- assertWithMessage(":6b:", content.getLine(0).equals("test"));
- assertWithMessage(":6c:", content.getOffsetAtLine(0) == 0);
- assertWithMessage(":6d:", content.getLine(1).equals(""));
- assertWithMessage(":6e:", content.getOffsetAtLine(1) == 5);
- assertWithMessage(":6f:", content.getLine(2).equals("test2"));
- assertWithMessage(":6g:", content.getOffsetAtLine(2) == 6);
- assertWithMessage(":6h:", content.getLine(3).equals(""));
- assertWithMessage(":6i:", content.getOffsetAtLine(3) == 12);
- assertWithMessage(":6j:", content.getLine(4).equals(""));
- assertWithMessage(":6k:", content.getOffsetAtLine(4) == 13);
- }
-
- public void test_Line_To_Offset() {
- StyledTextContent content = getContentInstance();
- content.setText("This\nis a test\rrepeat\nend\r");
- assertWithMessage(":1a:", content.getOffsetAtLine(0) == 0);
- assertWithMessage(":1b:", content.getOffsetAtLine(1) == 5);
- assertWithMessage(":1c:", content.getOffsetAtLine(2) == 15);
- assertWithMessage(":1d:", content.getOffsetAtLine(3) == 22);
- assertWithMessage(":1e:", content.getOffsetAtLine(4) == 26);
- content.setText("This\r\nis a test");
- assertWithMessage(":2a:", content.getOffsetAtLine(0) == 0);
- assertWithMessage(":2b:", content.getOffsetAtLine(1) == 6);
- content.setText("\r\n");
- assertWithMessage(":3a:", content.getOffsetAtLine(0) == 0);
- assertWithMessage(":3b:", content.getOffsetAtLine(1) == 2);
- content.setText("\r\n\n\r\r\n");
- assertWithMessage(":4a:", content.getOffsetAtLine(0) == 0);
- assertWithMessage(":4b:", content.getOffsetAtLine(1) == 2);
- assertWithMessage(":4c:", content.getOffsetAtLine(2) == 3);
- assertWithMessage(":4d:", content.getOffsetAtLine(3) == 4);
- assertWithMessage(":4e:", content.getOffsetAtLine(4) == 6);
- content.setText("\r\ntest\r\n");
- assertWithMessage(":5a:", content.getOffsetAtLine(0) == 0);
- assertWithMessage(":5b:", content.getOffsetAtLine(1) == 2);
- assertWithMessage(":5c:", content.getOffsetAtLine(2) == 8);
- }
-
- public void test_Offset_To_Line() {
- StyledTextContent content = getContentInstance();
- content.setText("This\nis a test\rrepeat\nend\r");
- assertWithMessage(":1a:", content.getLineAtOffset(0) == 0);
- assertWithMessage(":1b:", content.getLineAtOffset(3) == 0);
- assertWithMessage(":1c:", content.getLineAtOffset(4) == 0);
- assertWithMessage(":1d:", content.getLineAtOffset(25) == 3);
- assertWithMessage(":1e:", content.getLineAtOffset(26) == 4);
- content.setText("This\r\nis a test");
- assertWithMessage(":2a:", content.getLineAtOffset(5) == 0);
- assertWithMessage(":2b:", content.getLineAtOffset(6) == 1);
- assertWithMessage(":2c:", content.getLineAtOffset(10) == 1);
- content.setText("\r\n");
- assertWithMessage(":3a:", content.getLineAtOffset(0) == 0);
- assertWithMessage(":3b:", content.getLineAtOffset(1) == 0);
- assertWithMessage(":3c:", content.getLineAtOffset(2) == 1);
- content.setText("\r\n\n\r\r\n");
- assertWithMessage(":4a:", content.getLineAtOffset(0) == 0);
- assertWithMessage(":4b:", content.getLineAtOffset(1) == 0);
- assertWithMessage(":4c:", content.getLineAtOffset(2) == 1);
- assertWithMessage(":4d:", content.getLineAtOffset(3) == 2);
- assertWithMessage(":4e:", content.getLineAtOffset(4) == 3);
- assertWithMessage(":4f:", content.getLineAtOffset(5) == 3);
- assertWithMessage(":4g:", content.getLineAtOffset(6) == 4);
- content.setText("\r\n\r\n");
- assertWithMessage(":5a:", content.getLineAtOffset(0) == 0);
- assertWithMessage(":5b:", content.getLineAtOffset(1) == 0);
- assertWithMessage(":5c:", content.getLineAtOffset(2) == 1);
- assertWithMessage(":5d:", content.getLineAtOffset(3) == 1);
- assertWithMessage(":5e:", content.getLineAtOffset(4) == 2);
- content.setText("\r\r\r\n\r\n");
- assertWithMessage(":6a:", content.getLineAtOffset(0) == 0);
- assertWithMessage(":6b:", content.getLineAtOffset(1) == 1);
- assertWithMessage(":6c:", content.getLineAtOffset(2) == 2);
- assertWithMessage(":6d:", content.getLineAtOffset(4) == 3);
- content.setText("");
- assertWithMessage(":7a:", content.getLineAtOffset(0) == 0);
- content = getContentInstance();
- assertWithMessage(":8a:", content.getLineAtOffset(0) == 0);
- }
-
- public void test_Replace() {
- StyledTextContent content = getContentInstance();
- String newText;
- content.setText("This\nis a test\r");
- content.replaceTextRange(5, 4, "a");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":1a:", newText.equals("This\na test\r"));
- assertWithMessage(":1b:", content.getLineCount() == 3);
- assertWithMessage(":1c:", content.getLine(0).equals("This"));
- assertWithMessage(":1d:", content.getLine(1).equals("a test"));
- assertWithMessage(":1e:", content.getLine(2).equals(""));
- content.setText("This\nis a test\r");
- content.replaceTextRange(5, 2, "was");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":2a:", newText.equals("This\nwas a test\r"));
- assertWithMessage(":2b:", content.getLineCount() == 3);
- assertWithMessage(":2c:", content.getLine(0).equals("This"));
- assertWithMessage(":2d:", content.getLine(1).equals("was a test"));
- assertWithMessage(":2e:", content.getLine(2).equals(""));
- content.setText("This is a test\r");
- content.replaceTextRange(5, 2, "was");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":3a:", newText.equals("This was a test\r"));
- assertWithMessage(":3b:", content.getLineCount() == 2);
- assertWithMessage(":3c:", content.getLine(0).equals("This was a test"));
- assertWithMessage(":3d:", content.getLineAtOffset(15) == 0);
- content.setText("Line 1\nLine 2\nLine 3");
- content.replaceTextRange(0, 7, "La\nLb\n");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":4a:", newText.equals("La\nLb\nLine 2\nLine 3"));
- assertWithMessage(":4b:", content.getLine(0).equals("La"));
- assertWithMessage(":4c:", content.getLine(1).equals("Lb"));
- assertWithMessage(":4d:", content.getLine(2).equals("Line 2"));
- assertWithMessage(":4e:", content.getLine(3).equals("Line 3"));
- content.setText(getTestText());
- newText = content.getTextRange(0, content.getCharCount());
- int start = content.getOffsetAtLine(6);
- int end = content.getOffsetAtLine(11);
- content.replaceTextRange(start, end - start, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":5a:", content.getLineCount() == 12);
- assertWithMessage(":5a:", content.getLine(5).equals(""));
- assertWithMessage(":5a:", content.getLine(6).equals(""));
- start = content.getOffsetAtLine(7);
- content.replaceTextRange(start, content.getCharCount() - start, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":5a:", content.getLineCount() == 8);
- assertWithMessage(":5a:", content.getLine(5).equals(""));
- assertWithMessage(":5a:", content.getLine(6).equals(""));
- assertWithMessage(":5a:", content.getLine(7).equals(""));
- }
-
- public void test_Special_Cases() {
- String newText;
- StyledTextContent content = getContentInstance();
- assertWithMessage(":0a:", content.getLineCount() == 1);
- assertWithMessage(":0b:", content.getOffsetAtLine(0) == 0);
- content.setText("This is the input/output text component.");
- content.replaceTextRange(0, 0, "\n");
- assertWithMessage(":1a:", content.getLine(0).equals(""));
- content.replaceTextRange(1, 0, "\n");
- assertWithMessage(":1b:", content.getLine(0).equals(""));
- content.replaceTextRange(2, 0, "\n");
- assertWithMessage(":1c:", content.getLine(0).equals(""));
- content.replaceTextRange(3, 0, "\n");
- assertWithMessage(":1d:", content.getLine(0).equals(""));
- content.replaceTextRange(4, 0, "\n");
- assertWithMessage(":1e:", content.getLine(0).equals(""));
- content.replaceTextRange(5, 0, "\n");
- assertWithMessage(":1f:", content.getLine(0).equals(""));
- content.replaceTextRange(6, 0, "\n");
- assertWithMessage(":1g:", content.getLine(0).equals(""));
- content.replaceTextRange(7, 0, "\n");
- assertWithMessage(":1h:", content.getLine(0).equals(""));
- content.setText("This is the input/output text component.");
- content.replaceTextRange(0, 0, "\n");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":2a:", newText.equals("\nThis is the input/output text component."));
- assertWithMessage(":2b:", content.getLine(0).equals(""));
- assertWithMessage(":2c:", content.getLine(1).equals("This is the input/output text component."));
- content.replaceTextRange(1, 0, "\n");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":2d:", newText.equals("\n\nThis is the input/output text component."));
- assertWithMessage(":2e:", content.getLine(0).equals(""));
- assertWithMessage(":2f:", content.getLine(1).equals(""));
- assertWithMessage(":2g:", content.getLine(2).equals("This is the input/output text component."));
- content.replaceTextRange(2, 0, "\n");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":3a:", newText.equals("\n\n\nThis is the input/output text component."));
- assertWithMessage(":3b:", content.getLine(0).equals(""));
- assertWithMessage(":3c:", content.getLine(1).equals(""));
- assertWithMessage(":3d:", content.getLine(2).equals(""));
- assertWithMessage(":3e:", content.getLine(3).equals("This is the input/output text component."));
- content.replaceTextRange(3, 0, "\n");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":3f:", newText.equals("\n\n\n\nThis is the input/output text component."));
- assertWithMessage(":3g:", content.getLine(0).equals(""));
- assertWithMessage(":3h:", content.getLine(1).equals(""));
- assertWithMessage(":3i:", content.getLine(2).equals(""));
- assertWithMessage(":3j:", content.getLine(3).equals(""));
- assertWithMessage(":3k:", content.getLine(4).equals("This is the input/output text component."));
- content.replaceTextRange(3, 1, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":4a:", newText.equals("\n\n\nThis is the input/output text component."));
- assertWithMessage(":4b:", content.getLine(0).equals(""));
- assertWithMessage(":4c:", content.getLine(1).equals(""));
- assertWithMessage(":4d:", content.getLine(2).equals(""));
- assertWithMessage(":4e:", content.getLine(3).equals("This is the input/output text component."));
- content.replaceTextRange(2, 1, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":4f:", newText.equals("\n\nThis is the input/output text component."));
- assertWithMessage(":4g:", content.getLine(0).equals(""));
- assertWithMessage(":4h:", content.getLine(1).equals(""));
- assertWithMessage(":4i:", content.getLine(2).equals("This is the input/output text component."));
- content.replaceTextRange(2, 0, "a");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":5a:", newText.equals("\n\naThis is the input/output text component."));
- assertWithMessage(":5b:", content.getLine(0).equals(""));
- assertWithMessage(":5c:", content.getLine(1).equals(""));
- assertWithMessage(":5d:", content.getLine(2).equals("aThis is the input/output text component."));
- // delete only part of a delimiter
- content.setText("L1\r\nL2\r\nL3\r\nL4\r\n");
- content.replaceTextRange(0, 3, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":5e:", newText.equals("\nL2\r\nL3\r\nL4\r\n"));
- assertWithMessage(":5f:", content.getLineCount() == 5);
- assertWithMessage(":5g:", content.getLine(0).equals(""));
- assertWithMessage(":5h:", content.getLine(1).equals("L2"));
- assertWithMessage(":5i:", content.getLine(2).equals("L3"));
- assertWithMessage(":5j:", content.getLine(3).equals("L4"));
- assertWithMessage(":5k:", content.getLine(4).equals(""));
- // replace part of a delimiter
- content.setText("L1\r\nL2\r\nL3\r\nL4\r\n");
- content.replaceTextRange(3, 1, "test\n");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":6a:", newText.equals("L1\rtest\nL2\r\nL3\r\nL4\r\n"));
- assertWithMessage(":6b:", content.getLineCount() == 6);
- assertWithMessage(":6c:", content.getLine(0).equals("L1"));
- assertWithMessage(":6d:", content.getLine(1).equals("test"));
- assertWithMessage(":6e:", content.getLine(2).equals("L2"));
- assertWithMessage(":6f:", content.getLine(3).equals("L3"));
- assertWithMessage(":6g:", content.getLine(4).equals("L4"));
- assertWithMessage(":6h:", content.getLine(5).equals(""));
- content.setText("abc\r\ndef");
- content.replaceTextRange(1, 1, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":7a:", newText.equals("ac\r\ndef"));
- assertWithMessage(":7b:", content.getLineCount() == 2);
- assertWithMessage(":7c:", content.getLine(0).equals("ac"));
- assertWithMessage(":7d:", content.getLine(1).equals("def"));
- content.replaceTextRange(1, 1, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":7e:", newText.equals("a\r\ndef"));
- assertWithMessage(":7f:", content.getLineCount() == 2);
- assertWithMessage(":7g:", content.getLine(0).equals("a"));
- assertWithMessage(":7h:", content.getLine(1).equals("def"));
- content.replaceTextRange(1, 2, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":7i:", newText.equals("adef"));
- assertWithMessage(":7j:", content.getLineCount() == 1);
- assertWithMessage(":7k:", content.getLine(0).equals("adef"));
- content.replaceTextRange(1, 1, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":7l:", newText.equals("aef"));
- assertWithMessage(":7m:", content.getLineCount() == 1);
- assertWithMessage(":7n:", content.getLine(0).equals("aef"));
- content.replaceTextRange(1, 1, "");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":7o:", newText.equals("af"));
- assertWithMessage(":7p:", content.getLineCount() == 1);
- assertWithMessage(":7q:", content.getLine(0).equals("af"));
- content.setText("abc");
- content.replaceTextRange(0, 1, "1");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":8a:", content.getLineCount() == 1);
- assertWithMessage(":8b:", newText.equals("1bc"));
- assertWithMessage(":8c:", content.getLine(0).equals("1bc"));
- content.replaceTextRange(0, 0, "\n");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":8d:", newText.equals("\n1bc"));
- assertWithMessage(":8e:", content.getLineCount() == 2);
- assertWithMessage(":8f:", content.getLine(0).equals(""));
- assertWithMessage(":8g:", content.getLine(1).equals("1bc"));
- content = getContentInstance();
- content.replaceTextRange(0, 0, "a");
- content.setText("package test;\n/* Line 1\n * Line 2\n */\npublic class SimpleClass {\n}");
- content.replaceTextRange(14, 23, "\t/*Line 1\n\t * Line 2\n\t */");
- newText = content.getTextRange(0, content.getCharCount());
- assertWithMessage(":9a:", newText.equals("package test;\n\t/*Line 1\n\t * Line 2\n\t */\npublic class SimpleClass {\n}"));
- assertWithMessage(":9b:", content.getLineCount() == 6);
- assertWithMessage(":9c:", content.getLine(0).equals("package test;"));
- assertWithMessage(":9d:", content.getLine(1).equals("\t/*Line 1"));
- assertWithMessage(":9e:", content.getLine(2).equals("\t * Line 2"));
- assertWithMessage(":9f:", content.getLine(3).equals("\t */"));
- assertWithMessage(":9g:", content.getLine(4).equals("public class SimpleClass {"));
- assertWithMessage(":9h:", content.getLine(5).equals("}"));
- }
-
- public void test_Text_Changed_Event() {
- StyledTextContent content = getContentInstance();
- content.addTextChangeListener(this);
- verify = 1;
- content.setText("testing");
- content.replaceTextRange(0, 0, "\n");
- verify = 2;
- content.setText("\n\n");
- content.replaceTextRange(0, 2, "a");
- verify = 3;
- content.setText("a");
- content.replaceTextRange(0, 1, "\n\n");
- verify = 5;
- content.setText("Line 1\r\nLine 2");
- content.replaceTextRange(0, 0, "\r");
- verify = 6;
- content.setText("This\nis a test\nline 3\nline 4");
- content.replaceTextRange(21, 7, "");
- verify = 7;
- content.setText("This\nis a test\r");
- content.replaceTextRange(5, 9, "");
- verify = 8;
- content.setText("\nL1\r\nL2\r\n");
- content.replaceTextRange(7, 2, "");
- verify = 9;
- content.setText("L1\r\n");
- content.replaceTextRange(2, 2, "test");
- verify = 0;
- content.removeTextChangeListener(this);
- }
-
- public void textChanged(TextChangedEvent event) {
- }
-
- public void textChanging(TextChangingEvent event) {
- switch (verify) {
- case 1 :
- {
- assertWithMessage(":1a:", event.replaceLineCount == 0);
- assertWithMessage(":1b:", event.newLineCount == 1);
- break;
- }
- case 2 :
- {
- assertWithMessage(":2a:", event.replaceLineCount == 2);
- assertWithMessage(":2b:", event.newLineCount == 0);
- break;
- }
- case 3 :
- {
- assertWithMessage(":3a:", event.replaceLineCount == 0);
- assertWithMessage(":3b:", event.newLineCount == 2);
- break;
- }
- case 4 :
- {
- assertWithMessage(":4a:", event.replaceLineCount == 0);
- assertWithMessage(":4b:", event.newLineCount == 1);
- break;
- }
- case 5 :
- {
- assertWithMessage(":5a:", event.replaceLineCount == 0);
- assertWithMessage(":5b:", event.newLineCount == 1);
- break;
- }
- case 6 :
- {
- assertWithMessage(":6a:", event.replaceLineCount == 1);
- assertWithMessage(":6b:", event.newLineCount == 0);
- break;
- }
- case 8 :
- {
- assertWithMessage(":8a:", event.replaceLineCount == 1);
- assertWithMessage(":8b:", event.newLineCount == 0);
- break;
- }
- case 9 :
- {
- assertWithMessage(":9a:", event.replaceLineCount == 1);
- assertWithMessage(":9b:", event.newLineCount == 0);
- break;
- }
- case 10 :
- {
- assertWithMessage(":10a:", event.replaceLineCount == 0);
- assertWithMessage(":10b:", event.newLineCount == 0);
- break;
- }
- case 11 :
- {
- assertWithMessage(":11a:", event.replaceLineCount == 0);
- assertWithMessage(":11b:", event.newLineCount == 0);
- break;
- }
- case 12 :
- {
- assertWithMessage(":12a:", event.replaceLineCount == 0);
- assertWithMessage(":12b:", event.newLineCount == 0);
- break;
- }
- case 13 :
- {
- assertWithMessage(":13a:", event.replaceLineCount == 0);
- assertWithMessage(":13b:", event.newLineCount == 0);
- break;
- }
- case 14 :
- {
- assertWithMessage(":14a:", event.replaceLineCount == 0);
- assertWithMessage(":14b:", event.newLineCount == 1);
- break;
- }
- case 15 :
- {
- assertWithMessage(":15a:", event.replaceLineCount == 1);
- assertWithMessage(":15b:", event.newLineCount == 2);
- break;
- }
- case 16 :
- {
- assertWithMessage(":16a:", event.replaceLineCount == 0);
- assertWithMessage(":16b:", event.newLineCount == 1);
- break;
- }
- case 17 :
- {
- assertWithMessage(":17a:", event.replaceLineCount == 0);
- assertWithMessage(":17b:", event.newLineCount == 2);
- break;
- }
- case 18 :
- {
- assertWithMessage(":18a:", event.replaceLineCount == 0);
- assertWithMessage(":18b:", event.newLineCount == 1);
- break;
- }
- case 19 :
- {
- assertWithMessage(":19a:", event.replaceLineCount == 0);
- assertWithMessage(":19b:", event.newLineCount == 4);
- break;
- }
- case 20 :
- {
- assertWithMessage(":20a:", event.replaceLineCount == 0);
- assertWithMessage(":20b:", event.newLineCount == 2);
- break;
- }
- }
- }
-
- public void textSet(TextChangedEvent event) {
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/StyledTextTest.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/StyledTextTest.java
deleted file mode 100644
index 2876f483c..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/StyledTextTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.other;
-
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Insert the type's description here.
- * Creation date: (3/20/2001 6:19:58 PM)
- * @author: David Williams
- */
-public class StyledTextTest {
- /**
- * StyledTextTest constructor comment.
- */
- public StyledTextTest() {
- super();
- }
-
- /**
- * Don't forget, the *swt*.dll will have to be copied to program directory for this to work.
- */
- public static void main(String[] args) {
-
- try {
- Shell shell = new Shell();
- GridLayout layout = new GridLayout();
- shell.setLayout(layout);
-
- Button button = new Button(shell, SWT.PUSH);
- button.setText("Action");
- button.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- System.out.println("button pushed");
- }
- });
-
- StyledText text = new StyledText(shell, SWT.BORDER + SWT.H_SCROLL + SWT.V_SCROLL);
- GridData data = new GridData(GridData.FILL_BOTH);
- text.setLayoutData(data);
-
- //
- // String fileName = System.getProperty("user.dir") + "\\" + "japanese_utf-16.txt";
- // String encoding = "UnicodeBig";
-
- String fileName = System.getProperty("user.dir") + "\\" + "japanese_cp1252.txt";
- String encoding = "Cp1252";
- //sun.io.ByteToCharConverter.getDefault().toString();
-
- System.out.println("Test file: " + fileName);
- System.out.println(" Encoding: " + encoding);
-
- InputStream in = new FileInputStream(fileName);
- InputStreamReader inStream = new InputStreamReader(in, encoding);
- //Reader inStream = new FileReader(fileName);
- StringBuffer sb = new StringBuffer();
- while (inStream.ready()) {
- sb.append((char) inStream.read());
- }
- String inputString = sb.toString();
- System.out.println("Length of input: " + inputString.length());
- //
- text.setText(inputString);
-
- shell.setSize(400, 200);
- shell.open();
-
- Display display = shell.getDisplay();
- while (shell != null && !shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- }
- catch (Exception t) {
- t.printStackTrace();
- }
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/UnitTests.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/UnitTests.java
deleted file mode 100644
index 85a5df238..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/other/UnitTests.java
+++ /dev/null
@@ -1,1851 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.other;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.document.StructuredDocumentFactory;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.internal.provisional.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.xml.core.internal.document.DOMModelImpl;
-import org.eclipse.wst.xml.core.internal.parser.XMLSourceParser;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-public class UnitTests extends TestCase {
-
- protected IStructuredDocument fModel;
- protected IDOMModel tree;
- protected int eventCase = 1;
- protected boolean eventResult;
-
- public static final int GENERIC_NODES_REPLACED_EVENT_CASE = 1001;
- public static final int GENERIC_REGIONS_REPLACED_EVENT_CASE = 1002;
- public static final int GENERIC_REGION_CHANGED_EVENT_CASE = 1003;
- public static final int GENERIC_NEW_MODEL_EVENT_CASE = 1004;
- public static final int GENERIC_NO_CHANGE_EVENT_CASE = 1005;
-
- protected class StructuredDocumentListenerProxy implements IStructuredDocumentListener {
- public void newModel(NewDocumentEvent structuredDocumentEvent) {
- handleEvent(structuredDocumentEvent);
- }
-
- public void noChange(NoChangeEvent structuredDocumentEvent) {
- handleEvent(structuredDocumentEvent);
- }
-
- public void nodesReplaced(StructuredDocumentRegionsReplacedEvent structuredDocumentEvent) {
- handleEvent(structuredDocumentEvent);
- }
-
- public void regionChanged(RegionChangedEvent structuredDocumentEvent) {
- handleEvent(structuredDocumentEvent);
- }
-
- public void regionsReplaced(RegionsReplacedEvent structuredDocumentEvent) {
- handleEvent(structuredDocumentEvent);
- }
- }
-
- protected StructuredDocumentListenerProxy proxy = new StructuredDocumentListenerProxy();
-
- /**
- * MinimizationTest constructor comment.
- */
- public UnitTests(String name) {
- super(name);
- }
-
- protected void handleEvent(StructuredDocumentEvent structuredDocumentEvent) {
- eventResult = false;
- switch (eventCase) {
- case 1 :
- {
- if (structuredDocumentEvent instanceof NoChangeEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 2 :
- {
- if (structuredDocumentEvent instanceof NoChangeEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 3 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 4 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 5 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- if (3 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getOldStructuredDocumentRegions().getLength())
- if (3 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getNewStructuredDocumentRegions().getLength())
- eventResult = true; // ok
- }
- break;
- }
- case 6 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- if (0 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getOldStructuredDocumentRegions().getLength())
- if (2 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getNewStructuredDocumentRegions().getLength())
- if ("<B>".equals(((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getNewStructuredDocumentRegions().item(0).getText()))
- if ("</B>".equals(((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getNewStructuredDocumentRegions().item(1).getText())) {
- eventResult = true; // ok
- }
- }
- break;
- }
- case 7 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- if (0 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getOldStructuredDocumentRegions().getLength())
- if (1 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getNewStructuredDocumentRegions().getLength())
- eventResult = true; // ok
- }
-
- break;
- }
- case 8 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- if (0 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getOldStructuredDocumentRegions().getLength())
- if (2 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getNewStructuredDocumentRegions().getLength())
- //if ("<B>".equals(((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getNewStructuredDocumentRegions().item(0).getText()))
- //if ("</B>".equals(((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getNewStructuredDocumentRegions().item(1).getText())) {
- eventResult = true; // ok
- }
- break;
- }
- case 9 :
- case 10 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- if (2 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getOldStructuredDocumentRegions().getLength())
- if (0 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getNewStructuredDocumentRegions().getLength())
- if ("<TD>".equals(((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getOldStructuredDocumentRegions().item(0).getText()))
- if ("</TD>".equals(((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getOldStructuredDocumentRegions().item(1).getText()))
- eventResult = true; // ok
- }
- break;
- }
- case 11 :
- case 12 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- if (2 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getOldStructuredDocumentRegions().getLength())
- if (0 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getNewStructuredDocumentRegions().getLength())
- if ("<TD>".equals(((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getOldStructuredDocumentRegions().item(0).getText()))
- if ("</TD>".equals(((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getOldStructuredDocumentRegions().item(1).getText()))
- eventResult = true; // ok
- }
- break;
- }
- case 13 :
- {
- if (structuredDocumentEvent instanceof RegionsReplacedEvent) {
- if (3 == ((RegionsReplacedEvent) structuredDocumentEvent).getNewRegions().size())
- if (3 == ((RegionsReplacedEvent) structuredDocumentEvent).getOldRegions().size())
- eventResult = true; // ok
- }
- break;
- }
- case 14 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- if (3 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getOldStructuredDocumentRegions().getLength())
- if (1 == ((StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent).getNewStructuredDocumentRegions().getLength())
- eventResult = true; // ok
- }
- break;
- }
- case 15 :
- {
- if (structuredDocumentEvent instanceof RegionChangedEvent) {
- RegionChangedEvent regionChangedEvent = (RegionChangedEvent) structuredDocumentEvent;
- IStructuredDocumentRegion documentRegion = ((RegionChangedEvent) structuredDocumentEvent).getStructuredDocumentRegion();
- if ("b ".equals(documentRegion.getFullText(regionChangedEvent.getRegion()))) {
- eventResult = true; // ok
- }
- }
- break;
- }
- case 16 :
- {
- if (structuredDocumentEvent instanceof RegionsReplacedEvent) {
- if (0 == ((RegionsReplacedEvent) structuredDocumentEvent).getOldRegions().size()) {
- if (1 == ((RegionsReplacedEvent) structuredDocumentEvent).getNewRegions().size()) {
- eventResult = true; // ok
- }
- }
- }
- break;
- }
- case 17 :
- {
- if (structuredDocumentEvent instanceof RegionsReplacedEvent) {
- if (1 == ((RegionsReplacedEvent) structuredDocumentEvent).getOldRegions().size()) {
- if (3 == ((RegionsReplacedEvent) structuredDocumentEvent).getNewRegions().size()) {
- eventResult = true; // ok
- }
- }
- }
- break;
- }
- case 18 :
- {
- if (structuredDocumentEvent instanceof RegionsReplacedEvent) {
- if (2 == ((RegionsReplacedEvent) structuredDocumentEvent).getOldRegions().size()) {
- if (2 == ((RegionsReplacedEvent) structuredDocumentEvent).getNewRegions().size()) {
- eventResult = true; // ok
- }
- }
- }
- break;
- }
- case 19 :
- {
- if (structuredDocumentEvent instanceof RegionChangedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 20 :
- case 21 :
- {
- if (structuredDocumentEvent instanceof RegionChangedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 22 :
- {
- if (structuredDocumentEvent instanceof RegionChangedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 23 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 24 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 25 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 26 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- // JSP5
- case 27 :
- {
- // changed 2002, 9/12 to fit
- if (structuredDocumentEvent instanceof RegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 28 :
- {
- // changed 2002, 9/12 to fit
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 29 :
- {
- // changed 2002, 9/12 to fit
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 30 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- // JSP6
- case 31 :
- {
- // changed 2002, 9/12 to fit
- if (structuredDocumentEvent instanceof RegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 32 :
- {
- // changed 2002, 9/12 to fit -- this is definitely a change
- if (structuredDocumentEvent instanceof RegionsReplacedEvent) {
- RegionsReplacedEvent regionsReplacedEvent = (RegionsReplacedEvent) structuredDocumentEvent;
- if (1 == regionsReplacedEvent.getOldRegions().size()) {
- ITextRegion region = regionsReplacedEvent.getOldRegions().get(0);
- IStructuredDocumentRegion documentRegion = regionsReplacedEvent.getStructuredDocumentRegion();
- String text = documentRegion.getText(region);
- if ("<% aaa %>".equals(text)) {
- eventResult = true; // ok
- }
-
- }
- }
- else if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- StructuredDocumentRegionsReplacedEvent nodesReplacedEvent = (StructuredDocumentRegionsReplacedEvent) structuredDocumentEvent;
- IStructuredDocumentRegionList regions = nodesReplacedEvent.getNewStructuredDocumentRegions();
-
- if (1 == regions.getLength()) {
- IStructuredDocumentRegion region = regions.item(0);
- String text = region.getText();
- //System.out.println(text);
- if ("<c<% aaa ".equals(text)) {
- eventResult = true;
- }
- }
-
- }
- break;
- }
- case 33 :
- {
- // changed 2002, 9/12 to fit
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- // if (structuredDocumentEvent instanceof RegionChangedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 34 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
-
- case 35 :
- {
- // chanced to RegionsReplaced 2002, 9/11 (attribute value to region container)
- // String startString = "<p><img src=\"file.gif\"><p>";
- // String changes = "<";
- // String expectedString = "<p><img src=\"file<.gif\"><p>";
-
- // if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- if (structuredDocumentEvent instanceof RegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 36 :
- {
- if (structuredDocumentEvent instanceof RegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 37 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 38 :
- {
- if (structuredDocumentEvent instanceof RegionChangedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 39 :
- {
- if (structuredDocumentEvent instanceof RegionChangedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case 40 :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
-
- case GENERIC_NODES_REPLACED_EVENT_CASE :
- {
- if (structuredDocumentEvent instanceof StructuredDocumentRegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case GENERIC_REGIONS_REPLACED_EVENT_CASE :
- {
- if (structuredDocumentEvent instanceof RegionsReplacedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case GENERIC_REGION_CHANGED_EVENT_CASE :
- {
- if (structuredDocumentEvent instanceof RegionChangedEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case GENERIC_NEW_MODEL_EVENT_CASE :
- {
- if (structuredDocumentEvent instanceof NewDocumentEvent) {
- eventResult = true; // ok
- }
- break;
- }
- case GENERIC_NO_CHANGE_EVENT_CASE :
- {
- if (structuredDocumentEvent instanceof NoChangeEvent) {
- eventResult = true; // ok
- }
- break;
- }
-
- default :
- {
- if (structuredDocumentEvent instanceof NewDocumentEvent) {
- eventResult = true; // ok
- }
- }
- }
- }
-
- /**
- * Starts the application.
- * @param args an array of command-line arguments
- */
- public static void main(java.lang.String[] args) {
- if (args.length == 0) {
- runAll();
- }
- else if (args.length == 1) {
- String methodToRun = args[0].trim();
- runOne(methodToRun);
- }
- }
-
- protected static void runAll() {
- junit.textui.TestRunner.run(suite());
-
- }
-
- public static void runOne(String methodName) {
- TestSuite testSuite = new TestSuite();
- TestCase test = new UnitTests(methodName);
- testSuite.addTest(test);
- junit.textui.TestRunner.run(testSuite);
-
- }
-
- /**
- * Set up an XML model
- */
- protected void setUpXML() {
-
- IModelManager mm = StructuredModelManager.getModelManager();
- try {
- fModel = mm.createStructuredDocumentFor("dummy.xml", (InputStream) null, null);
- }
- catch (IOException e) {
- // do nothing, since dummy
- }
- fModel.addDocumentChangedListener(proxy);
-
- tree = new DOMModelImpl();
-
- if (tree != null) {
- fModel.addDocumentChangingListener((IStructuredDocumentListener) tree);
- tree.setStructuredDocument(fModel);
- }
-
- }
-
- /**
- * Set up a JSP model
- */
- protected void setUpJSP() {
-
- IModelManager mm = StructuredModelManager.getModelManager();
- try {
- fModel = mm.createStructuredDocumentFor("dummy.jsp", (InputStream) null, null);
- }
- catch (IOException e) {
- // do nothing, since dummy
- }
- fModel = StructuredDocumentFactory.getNewStructuredDocumentInstance(new JSPSourceParser());
-
- fModel.addDocumentChangedListener(proxy);
-
- tree = new DOMModelImpl();
-
- if (tree != null) {
- fModel.addDocumentChangingListener((IStructuredDocumentListener) tree);
- tree.setStructuredDocument(fModel);
- }
-
- }
-
- /**
- */
- public void simpleTest() {
-
- setUpJSP();
- eventCase = 99;
- String startString = "";
- String changes = "<a></a>";
- String expectedString = "<a></a>";
- int startOfChanges = 0;
- int lengthToReplace = 0;
-
- //
- fModel.setText(null, startString);
-
- //
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- }
-
- /**
- */
- public void simpleTest2() {
-
- setUpXML();
- eventCase = 99;
- String startString = "";
- String changes = "<a></a>";
- String expectedString = "<a></a>";
- int startOfChanges = 0;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- }
-
- /**
- */
- public void simpleTest3() {
-
- setUpXML();
- eventCase = 99;
- String startString = "<a></a>";
- String changes = "";
- String expectedString = "<a></a>";
- int startOfChanges = 0;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/1/2001 6:16:02 PM)
- * @return junit.framework.Test
- */
- protected static Test suite() {
- return new TestSuite(UnitTests.class);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/1/2001 6:28:59 PM)
- * @exception SourceEditingException The exception description.
- */
- public void testDeleteBeginning() {
-
- setUpXML();
- eventCase = 4;
- String expectedString = "<GHI>";
-
- fModel.setText(null, "<ABC><DEF><GHI>");
-
- fModel.replaceText(null, 0, 10, "");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/1/2001 6:27:31 PM)
- * @exception SourceEditingException The exception description.
- */
- public void testDeleteEnd() {
-
- setUpXML();
- eventCase = 3;
- String expectedString = "<ABC><DEF>";
-
- fModel.setText(null, "<ABC><DEF><GHI>");
-
- fModel.replaceText(null, 10, 5, "");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- */
- public void testEmbedded() {
-
- setUpJSP();
- eventCase = GENERIC_NEW_MODEL_EVENT_CASE;
- String startString = "<p><img src=\"file.gif\"><p>";
- String changes = "<";
- String expectedString = "<p><img src=\"file<.gif\"><p>";
- int startOfChanges = 17;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- eventCase = 35;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("part 1: text update", result);
- assertTrue("part 1: event type", eventResult);
-
- eventCase = 36;
- startString = expectedString;
- changes = "%";
- expectedString = "<p><img src=\"file<%.gif\"><p>";
- startOfChanges = 18;
- lengthToReplace = 0;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- resultString = fModel.getText();
-
- result = (expectedString.equals(resultString));
-
- assertTrue("part 2: text update", result);
- assertTrue("part 2: event type", eventResult);
-
- eventCase = 37;
- startString = expectedString;
- changes = " ";
- expectedString = "<p><img src=\"file<% .gif\"><p>";
- startOfChanges = 19;
- lengthToReplace = 0;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- resultString = fModel.getText();
-
- result = (expectedString.equals(resultString));
-
- assertTrue("part 3: text update", result);
- assertTrue("part 3: event type", eventResult);
-
- eventCase = 38;
- startString = expectedString;
- changes = "ab ";
- expectedString = "<p><img src=\"file<% ab .gif\"><p>";
- startOfChanges = 20;
- lengthToReplace = 0;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- resultString = fModel.getText();
-
- result = (expectedString.equals(resultString));
-
- assertTrue("part 4: text update", result);
- assertTrue("part 4: event type", eventResult);
-
- eventCase = 39;
- startString = expectedString;
- changes = "%";
- expectedString = "<p><img src=\"file<% ab %.gif\"><p>";
- startOfChanges = 23;
- lengthToReplace = 0;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- resultString = fModel.getText();
-
- result = (expectedString.equals(resultString));
-
- assertTrue("part 5: text update", result);
- assertTrue("part 5: event type", eventResult);
-
- eventCase = 40;
- startString = expectedString;
- changes = ">";
- expectedString = "<p><img src=\"file<% ab %>.gif\"><p>";
- startOfChanges = 24;
- lengthToReplace = 0;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- resultString = fModel.getText();
-
- result = (expectedString.equals(resultString));
-
- assertTrue("part 6: text update", result);
- assertTrue("part 6: event type", eventResult);
-
- }
-
- /**
- */
- public void testEmbeddedJSP2() {
-
- setUpJSP();
- eventCase = GENERIC_REGIONS_REPLACED_EVENT_CASE;
- String startString = "<a >c</a>";
- String changes = "<%= b %>";
- String expectedString = "<a <%= b %>>c</a>";
- int startOfChanges = 3;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- }
-
- public void testDeepEmbeddedJSP() {
-
- setUpJSP();
- eventCase = GENERIC_REGIONS_REPLACED_EVENT_CASE;
- String startString = "<script><a >c</a></script>";
- String changes = "<%= b %>";
- String expectedString = "<script><a <%= b %> >c</a></script>";
- int startOfChanges = 11;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- IStructuredDocumentRegion testR = fModel.getRegionAtCharacterOffset(11);
- String testText = testR.getText();
- assertTrue("text retrieve", testText.equals("<a <%= b %> >"));
- testText = testR.getFullText();
- assertTrue("text retrieve", testText.equals("<a <%= b %> >"));
-
- ITextRegionList regionList = testR.getRegions();
-
- ITextRegion region = regionList.get(0);
- testText = testR.getText(region);
- assertTrue("text retrieve", testText.equals("<"));
-
- region = regionList.get(1);
- testText = testR.getText(region);
- assertTrue("text retrieve", testText.equals("a"));
- testText = testR.getFullText(region);
- assertTrue("text retrieve", testText.equals("a "));
-
- region = regionList.get(2);
- testText = testR.getText(region);
- assertTrue("text retrieve", testText.equals("<%= b %>"));
- testText = testR.getFullText(region);
- assertTrue("text retrieve", testText.equals("<%= b %> "));
-
- // ===
-
- ITextRegionContainer cRegion = (ITextRegionContainer) region;
-
- ITextRegionList eRegions = cRegion.getRegions();
- ITextRegion eRegion = eRegions.get(0);
- testText = cRegion.getText(eRegion);
- assertTrue("text retrieve", testText.equals("<%="));
- testText = cRegion.getFullText(eRegion);
- assertTrue("text retrieve", testText.equals("<%="));
-
- eRegion = eRegions.get(1);
- testText = cRegion.getText(eRegion);
- assertTrue("text retrieve", testText.equals(" b "));
- testText = cRegion.getFullText(eRegion);
- assertTrue("text retrieve", testText.equals(" b "));
-
- eRegion = eRegions.get(2);
- testText = cRegion.getText(eRegion);
- assertTrue("text retrieve", testText.equals("%>"));
- testText = cRegion.getFullText(eRegion);
- assertTrue("text retrieve", testText.equals("%>"));
-
- eRegion = eRegions.get(3);
- testText = cRegion.getText(eRegion);
- assertTrue("text retrieve", testText.equals(""));
- testText = cRegion.getFullText(eRegion);
- assertTrue("text retrieve", testText.equals(" "));
-
- // ====
-
- region = regionList.get(3);
- testText = testR.getText(region);
- assertTrue("text retrieve", testText.equals(">"));
- testText = testR.getFullText(region);
- assertTrue("text retrieve", testText.equals(">"));
-
- }
-
- public void testDeepEmbeddedJSP2() {
-
- setUpJSP();
- eventCase = GENERIC_REGIONS_REPLACED_EVENT_CASE;
- String startString = "<script><a >c</a></script>";
- String changes = "<%= b %";
- String expectedString = "<script><a <%= b % >c</a></script>";
- int startOfChanges = 11;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- IStructuredDocumentRegion testR = fModel.getRegionAtCharacterOffset(11);
- String testText = testR.getText();
- assertTrue("text retrieve", testText.equals("<a <%= b % >"));
- testText = testR.getFullText();
- assertTrue("text retrieve", testText.equals("<a <%= b % >"));
-
- ITextRegionList regionList = testR.getRegions();
-
- ITextRegion region = regionList.get(0);
- testText = testR.getText(region);
- assertTrue("text retrieve", testText.equals("<"));
-
- region = regionList.get(1);
- testText = testR.getText(region);
- assertTrue("text retrieve", testText.equals("a"));
- testText = testR.getFullText(region);
- assertTrue("text retrieve", testText.equals("a "));
-
- region = regionList.get(2);
- testText = testR.getText(region);
- assertTrue("text retrieve", testText.equals("<%= b % >"));
- testText = testR.getFullText(region);
- assertTrue("text retrieve", testText.equals("<%= b % >"));
-
- // ===
-
- ITextRegionContainer cRegion = (ITextRegionContainer) region;
-
- ITextRegionList eRegions = cRegion.getRegions();
- ITextRegion eRegion = eRegions.get(0);
- testText = cRegion.getText(eRegion);
- assertTrue("text retrieve", testText.equals("<%="));
- testText = cRegion.getFullText(eRegion);
- assertTrue("text retrieve", testText.equals("<%="));
-
- eRegion = eRegions.get(1);
- testText = cRegion.getText(eRegion);
- assertTrue("text retrieve", testText.equals(" b % >"));
- testText = cRegion.getFullText(eRegion);
- assertTrue("text retrieve", testText.equals(" b % >"));
-
-
- // ====
- }
-
- public void testDeepEmbeddedJSP3() {
- // CMVC 245586
- // this is a test to make sure ContextRegionContainer returns what we expect
- setUpJSP();
- String startString = "<html><head><script> <%! String testvar = \"testvar\"; %> var test = <%= testvar %> </script></head></html>";
- String expectedText = "<%! String testvar = \"testvar\"; %>";
- ((XMLSourceParser) fModel.getParser()).addBlockMarker(new BlockMarker("script", null, DOMRegionContext.BLOCK_TEXT, false)); //$NON-NLS-1$
- fModel.setText(null, startString);
-
- fModel.getRegionList();
-
- IStructuredDocumentRegion scriptBlockRegion = fModel.getRegionAtCharacterOffset(21);
- ITextRegionList blockRegions = scriptBlockRegion.getRegions();
- ITextRegionContainer jspDecl = (ITextRegionContainer) blockRegions.get(1);
- String fullText = jspDecl.getFullText();
-
- //assertTrue("ContextRegionContainer.getFullText()", fullText.equals(expectedText));
- assertEquals("ContextRegionContainer.getFullText() value incorrect: ", expectedText, fullText);
- }
-
- public void testJSP1() {
-
- setUpJSP();
- eventCase = 23;
- String startString = "abcd<%= abc %>efgh";
- String expectedString = "abcd< %= abc %>efgh";
- String changes = " ";
- int startOfChanges = 5;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- }
-
- public void testJSP2() {
-
- setUpJSP();
- eventCase = 24;
- String startString = "abcd<% abc %>efgh";
- String expectedString = "abcd< % abc %>efgh";
- String changes = " ";
- int startOfChanges = 5;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- }
-
- public void testJSP3() {
-
- setUpJSP();
- eventCase = 25;
- String startString = "<%= abc %>";
- String expectedString = "< %= abc %>";
- String changes = " ";
- int startOfChanges = 1;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- public void testJSP4() {
-
- setUpJSP();
- eventCase = 26;
- String startString = "<% abc %>";
- String expectedString = "< % abc %>";
- String changes = " ";
- int startOfChanges = 1;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- Give a JSP scriptlet :
- <% aaa %>
- When an user types "<bb>" just before
- the JSP scriptlet :
- (1) When '<' is typed, regionsReplaced()
- is called for "<%".
- (2) When 'b' is typed, nodesReplaced()
- is called for "<<%" and " aaa ".
- (3) When 'b' is typed again, finally,
- nodesReplaced() is called for
- "<b<% aaa" and "%>".
- The end JSP IStructuredDocumentRegion should be
- reparsed at (1), but not wait until (3).
-
- */
- public void testJSP5() {
-
- setUpJSP();
- eventCase = GENERIC_NEW_MODEL_EVENT_CASE;
- String startString = "<% aaa %><p>";
- String changes = "<";
- String expectedString = "<<% aaa %><p>";
- int startOfChanges = 0;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- eventCase = 27;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
- assertTrue("part 1: text update", result);
- assertTrue("part 1: event type", eventResult);
-
- // step 2
- // ? does assertTrue prevent rest from executing if 'false'?
- // ans: yes
- eventCase = 28;
- startString = expectedString;
- changes = "b";
- expectedString = "<b<% aaa %><p>";
- startOfChanges = 1;
- lengthToReplace = 0;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- resultString = fModel.getText();
-
- result = (expectedString.equals(resultString));
- assertTrue("part 2: text update", result);
- assertTrue("part 2: event type", eventResult);
-
- eventCase = 29;
- startString = expectedString;
- changes = "b";
- expectedString = "<bb<% aaa %><p>";
- startOfChanges = 2;
- lengthToReplace = 0;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- resultString = fModel.getText();
-
- result = (expectedString.equals(resultString));
- assertTrue("part 3: text update", result);
- assertTrue("part 3: event type", eventResult);
-
- eventCase = 30;
- startString = expectedString;
- changes = ">";
- expectedString = "<bb><% aaa %><p>";
- startOfChanges = 3;
- lengthToReplace = 0;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- resultString = fModel.getText();
-
- result = (expectedString.equals(resultString));
- assertTrue("part 4: text update", result);
- assertTrue("part 4: event type", eventResult);
- }
-
- /**
- Example 4)
-
- Given two JSP scriptlets :
- <% aaa %><% bbb %>
- When an user types "<cccc>" just before
- the JSP scriptlet, watch the IStructuredDocument events
- on each character typing.
- You will see the next JSP IStructuredDocumentRegion is reparsed
- (to be broken into other type of IStructuredDocumentRegion)
- one by one on each event.
- But it should be at once at the first event.
- Old Component: wsa.web.pageediting
- New Component: wsa.web.xmleditor
-
-
- */
- public void testJSP6() {
- // caution ... we're re-using event checks from JSP5
-
- setUpJSP();
-
- eventCase = GENERIC_NEW_MODEL_EVENT_CASE;
- String startString = "<% aaa %><% bbb %>";
- String changes = "<";
- String expectedString = "<<% aaa %><% bbb %>";
- int startOfChanges = 0;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
- eventCase = 31;
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
- assertTrue("part 1: text update", result);
- assertTrue("part 1: event type", eventResult);
-
- eventCase = 32;
- startString = expectedString;
- changes = "c";
- expectedString = "<c<% aaa %><% bbb %>";
- startOfChanges = 1;
- lengthToReplace = 0;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- resultString = fModel.getText();
-
- result = (expectedString.equals(resultString));
- assertTrue("part 2: text update", result);
- assertTrue("part 2: event type", eventResult);
-
- eventCase = 33;
- startString = expectedString;
- changes = "c";
- expectedString = "<cc<% aaa %><% bbb %>";
- startOfChanges = 2;
- lengthToReplace = 0;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- resultString = fModel.getText();
-
- result = (expectedString.equals(resultString));
- assertTrue("part 3: text update", result);
- assertTrue("part 3: event type", eventResult);
-
- eventCase = 34;
- startString = expectedString;
- changes = ">";
- expectedString = "<cc><% aaa %><% bbb %>";
- startOfChanges = 3;
- lengthToReplace = 0;
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- resultString = fModel.getText();
-
- result = (expectedString.equals(resultString));
- assertTrue("part 4: text update", result);
- assertTrue("part 4: event type", eventResult);
-
- }
-
- /**
- * this test easily returns "ok" even with the no-space bug. Its mostly to
- * "hand examine" the structuredDocument created from the initial setText.
- */
- public void testJSPDirective() {
-
- setUpJSP();
- eventCase = GENERIC_NODES_REPLACED_EVENT_CASE;
- String startString = "<%@include%>";
- String changes = "T";
- String expectedString = "<%@include%>T";
- int startOfChanges = 12;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- // ?
- // assertTrue(result); // && eventResult);
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/1/2001 6:53:08 PM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod10() {
-
- setUpXML();
- eventCase = 10;
- String expectedString = "<TD></TD>";
-
- fModel.setText(null, "<TD></TD><TD></TD>");
-
- fModel.replaceText(null, 9, 9, "");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/2/2001 10:56:04 AM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod11() {
-
- setUpXML();
- eventCase = 11;
- String expectedString = "<XXX><TD></TD><XXX>";
-
- fModel.setText(null, "<XXX><TD></TD><TD></TD><XXX>");
-
- fModel.replaceText(null, 5, 9, "");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/2/2001 10:59:39 AM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod12() {
-
- setUpXML();
- eventCase = 12;
- String expectedString = "<XXX><TD></TD><XXX>";
-
- fModel.setText(null, "<XXX><TD></TD><TD></TD><XXX>");
-
- fModel.replaceText(null, 14, 9, "");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/2/2001 11:00:59 AM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod13() {
-
- setUpXML();
- eventCase = 13;
- String expectedString = "<ABC><JKL><GHI>";
-
- fModel.setText(null, "<ABC><DEF><GHI>");
-
- fModel.replaceText(null, 5, 5, "<JKL>");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/2/2001 11:02:19 AM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod14() {
-
- setUpXML();
- eventCase = 14;
- String expectedString = "<a>\r\r </a>";
-
- fModel.setText(null, "<a>\r<b>\r </a>");
-
- fModel.replaceText(null, 4, 3, "");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/2/2001 11:03:53 AM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod15() {
-
- setUpXML();
- eventCase = 15;
- String expectedString = "<a><b ></b></a>";
-
- fModel.setText(null, "<a><b></b></a>");
-
- fModel.replaceText(null, 5, 0, " ");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/2/2001 11:05:27 AM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod16() {
-
- setUpXML();
- eventCase = 16;
- String expectedString = "<a><b z></b></a>";
-
- fModel.setText(null, "<a><b ></b></a>");
-
- fModel.replaceText(null, 6, 0, "z");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/2/2001 11:06:33 AM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod17() {
-
- setUpXML();
- eventCase = 17;
- String expectedString = "<a><b z=\"t\"></b></a>";
-
- fModel.setText(null, "<a><b z></b></a>");
-
- fModel.replaceText(null, 6, 1, "z=\"t\"");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/2/2001 11:09:17 AM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod18() {
-
- setUpXML();
- eventCase = 18;
- String expectedString = "<a><c z></b></a>";
-
- fModel.setText(null, "<a><b z></b></a>");
-
- fModel.replaceText(null, 4, 3, "c z");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/2/2001 11:10:30 AM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod19() {
-
- eventCase = 19;
- setUpJSP();
- fModel.setText(null, "<BODY>\r<IMG src=\"<%=\r</BODY>\r");
- String expectedString = "<BODY>\r<IMG src=\"<%=Q\r</BODY>\r";
-
- fModel.replaceText(null, 20, 0, "Q");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/2/2001 11:12:05 AM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod20() {
-
- setUpJSP();
-
- eventCase = 20;
- String expectedString = "<STYLE TYPE=\"text/css\">\r<!--\rBODY {\r\r}-->\r</STYLE>\r";
-
- fModel.setText(null, "<STYLE TYPE=\"text/css\">\r<!--\r-->\r</STYLE>\r");
-
- fModel.replaceText(null, 28, 1, "\rBODY {\r\r}");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/2/2001 11:32:23 AM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod21() {
-
- setUpJSP();
-
- eventCase = 21;
- String expectedString = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"\">\r<HTML>\r<HEAD>\r <META content=\"text/html; charset=iso-8859-1\" http-equiv=\"Content-Type\">\r<META name=\"GENERATOR\" content=\"IBM WebSphere Page Designer V4.1.0 for Windows\">\r<META content=\"text/css\" http-equiv=\"Content-Style-Type\">\r<TITLE></TITLE>\r<STYLE TYPE=\"text/css\">\r<!--\rBODY {\r\r}-->\r</STYLE>\r";
-
- fModel.setText(null, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"\">\r<HTML>\r<HEAD>\r <META content=\"text/html; charset=iso-8859-1\" http-equiv=\"Content-Type\">\r<META name=\"GENERATOR\" content=\"IBM WebSphere Page Designer V4.1.0 for Windows\">\r<META content=\"text/css\" http-equiv=\"Content-Style-Type\">\r<TITLE></TITLE>\r<STYLE TYPE=\"text/css\">\r<!--\r-->\r</STYLE>\r");
-
- fModel.replaceText(null, 343, 1, "\rBODY {\r\r}");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/1/2001 6:45:29 PM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethod9() {
-
- setUpXML();
- eventCase = 9;
- String expectedString = "<TD></TD>";
-
- fModel.setText(null, "<TD></TD><TD></TD>");
-
- fModel.replaceText(null, 0, 9, "");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/1/2001 6:45:29 PM)
- * @exception SourceEditingException The exception description.
- */
- public void testMethodAttributeNameReplace1() {
-
- //testEvent = 22;
- //tags = "<tagName abc=\"bsf\">";
- //testStructuredDocumentReplacement(testEvent, tags, "abcde","<tagName abcde=\"bsf\">", 9, 3);
-
- setUpXML();
- eventCase = 22;
- String startString = "<tagName abc=\"bsf\">";
- String expectedString = "<tagName abcde=\"bsf\">";
- String changes = "abcde";
- int startOfChanges = 9;
- int lengthToReplace = 3;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/1/2001 6:35:41 PM)
- * @exception SourceEditingException The exception description.
- */
- public void testModifyMiddle() {
-
- setUpXML();
- eventCase = 5;
- String expectedString = "<ABC><JKL><GHI>";
-
- fModel.setText(null, "<ABC><DEF><GHI>");
-
- fModel.replaceText(null, 0, 15, "<ABC><JKL><GHI>");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/1/2001 6:06:33 PM)
- */
- public void testNoChange1() {
-
- setUpXML();
- eventCase = 1;
- String expectedString = "<ABC><DEF><GHI>";
-
- fModel.setText(null, "<ABC><DEF><GHI>");
-
- fModel.replaceText(null, 10, 0, "");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/1/2001 6:26:05 PM)
- * @exception SourceEditingException The exception description.
- */
- public void testNoChange2() {
-
- setUpXML();
- eventCase = 2;
- String expectedString = "<ABC><DEF><GHI>";
-
- fModel.setText(null, "<ABC><DEF><GHI>");
-
- fModel.replaceText(null, 0, 15, "<ABC><DEF><GHI>");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/1/2001 6:38:25 PM)
- * @exception SourceEditingException The exception description.
- */
- public void testSimilarStart() {
-
- setUpXML();
- eventCase = 6;
- String expectedString = "<P><B></B><B></B></P>";
-
- fModel.setText(null, "<P><B></B></P>");
-
- fModel.replaceText(null, 3, 0, "<B></B>");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/1/2001 6:43:29 PM)
- * @exception SourceEditingException The exception description.
- */
- public void testSimilarStartEnd() {
-
- setUpXML();
- eventCase = 8;
- String expectedString = "<P><B><B></B></B></P>";
-
- fModel.setText(null, "<P><B></B></P>");
-
- fModel.replaceText(null, 6, 0, "<B></B>");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- * Insert the method's description here.
- * Creation date: (8/1/2001 6:41:46 PM)
- * @exception SourceEditingException The exception description.
- */
- public void testSimiliarEnd() {
-
- setUpXML();
- eventCase = 7;
- String expectedString = "<P><B></B><P><P>";
-
- fModel.setText(null, "<P><B></B><P>");
-
- fModel.replaceText(null, 10, 0, "<P>");
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
- }
-
- /**
- */
- public void testTagReDetection() {
-
- setUpJSP();
- // (nsd) 2003.12.10 - changed from NodesReplaced to RegionsReplaced since the start condition was changed
- // from being 3 document regions to 4 since "script" is not 'nestable'
- //eventCase = GENERIC_REGIONS_REPLACED_EVENT_CASE;
-
- // reverted 2004.04.05
- eventCase = GENERIC_NODES_REPLACED_EVENT_CASE;
-// eventCase = GENERIC_REGIONS_REPLACED_EVENT_CASE;
- String startString = "<p>test<<SCRIPT>";
- String changes = "S";
- String expectedString = "<p>test<S<SCRIPT>";
- int startOfChanges = 8;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- // ? assertTrue(result); // && eventResult);
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- }
-
- /**
- */
- public void testTagReDetection2() {
-
- setUpJSP();
- eventCase = GENERIC_REGION_CHANGED_EVENT_CASE;
- String startString = "<p>test<<SCRIPT>";
- String changes = "S";
- String expectedString = "<p>test<<SCRIPTS>";
- int startOfChanges = 15;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- // assertTrue(result); // && eventResult);
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- }
-
- /**
- */
- public void testTagReDetection3() {
-
- setUpJSP();
- eventCase = GENERIC_NODES_REPLACED_EVENT_CASE;
- String startString = "<p>test<test>";
- String changes = "%";
- String expectedString = "<p>test<%test>";
- int startOfChanges = 8;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- // assertTrue(result); // && eventResult);
- assertTrue("text update", result);
- assertTrue("event type", eventResult);
-
- }
-
- /**
- * @see junit.framework.TestCase#tearDown()
- */
- protected void tearDown() throws Exception {
- super.tearDown();
- if (fModel != null)
- fModel.removeDocumentChangedListener(proxy);
- }
-
- /**
- * @see junit.framework.TestCase#setUp()
- */
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- public void testPageDirective() {
- boolean verbose = false;
- setUpJSP();
- eventCase = 999; //GENERIC_NODES_REPLACED_EVENT_CASE;
- String startString = "<%@page lang=\"java\" <SCRIPT>var <% test %> String</SCRIPT>";
- String changes = "s";
- String expectedString = "<%@page lang=\"javas\" <SCRIPT>var <% test %> String</SCRIPT>";
- int startOfChanges = 18;
- int lengthToReplace = 0;
-
- fModel.setText(null, startString);
-
- if (verbose) {
- Debug.dump(fModel, true);
- }
-
- StructuredDocumentEvent structuredDocumentEvent = fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- String resultString = fModel.getText();
-
- boolean result = (expectedString.equals(resultString));
-
- // assertTrue(result); // && eventResult);
- assertTrue("text update", result);
- //assertTrue("event type", eventResult);
-
- if (verbose) {
- System.out.println();
- System.out.println("structured document:");
- IStructuredDocument document = structuredDocumentEvent.getStructuredDocument();
- Debug.dump(document, true);
- }
-
- // now delete quote
- changes = "";
- expectedString = "<%@page lang=\"javas\" <SCRIPT>var <% test %> String</SCRIPT>";
- startOfChanges = 19;
- lengthToReplace = 1;
- fModel.replaceText(null, startOfChanges, lengthToReplace, changes);
- resultString = fModel.getText();
- assertTrue("text update", result);
-
- if (verbose) {
- System.out.println();
- System.out.println("structured document:");
- IStructuredDocument document = structuredDocumentEvent.getStructuredDocument();
- Debug.dump(document, true);
- }
-
- }
-
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/pagedirective/TestPageDirective.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/pagedirective/TestPageDirective.java
deleted file mode 100644
index 284f71104..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/pagedirective/TestPageDirective.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.pagedirective;
-
-import java.io.IOException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jst.jsp.core.internal.document.PageDirectiveAdapter;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.modelhandler.EmbeddedXML;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-import org.w3c.dom.Node;
-
-/**
- * @author davidw
- */
-public class TestPageDirective extends TestCase {
-
- class MyEmbeddedFactory implements INodeAdapterFactory {
-
- public INodeAdapter adapt(INodeNotifier object) {
- return null;
- }
-
- public INodeAdapterFactory copy() {
- return null;
- }
-
- public boolean isFactoryForType(Object type) {
- return type instanceof MyAdaptedClass;
- }
-
- public void release() {
- // noop
- }
- }
-
- class MyAdaptedClass {
- // dummy class is key
- }
-
- /**
- * Constructor for TestPageDirective.
- * @param name
- */
- public TestPageDirective(String name) {
- super(name);
- }
-
- public void testBasicPD() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForJSP.ContentTypeID_JSP);
- assertTrue("model could not be created!", model != null);
-
- // Now, assigning use a page directive, but leaving embedded type the same as default
- model.getStructuredDocument().setText(this, "<%@ page contentType=\"text/html\" language=\"java\" %>");
- PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) ((IDOMModel) model).getDocument().getAdapterFor(PageDirectiveAdapter.class);
-
- String contentType = pageDirectiveAdapter.getContentType();
- String language = pageDirectiveAdapter.getLanguage();
-
- assertTrue("contentType should be html", "text/html".equals(contentType));
- assertTrue("language should be java", "java".equals(language));
-
- }
-
- public void testBasicChangedPD() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForJSP.ContentTypeID_JSP);
- assertTrue("model could not be created!", model != null);
-
- // Now, assigning use a page directive, but leaving embedded type the same as default
- model.getStructuredDocument().setText(this, "<%@ page contentType=\"text/html\" language=\"java\" %>");
- PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) ((IDOMModel) model).getDocument().getAdapterFor(PageDirectiveAdapter.class);
-
- String contentType = pageDirectiveAdapter.getContentType();
- String language = pageDirectiveAdapter.getLanguage();
-
- assertTrue("contentType should be html", "text/html".equals(contentType));
- assertTrue("language should be java", "java".equals(language));
-
- // change to javascript
- model.getStructuredDocument().replaceText(this, 43, 4, "javascript");
-
- contentType = pageDirectiveAdapter.getContentType();
- language = pageDirectiveAdapter.getLanguage();
-
- assertTrue("contentType should be html", "text/html".equals(contentType));
- assertTrue("language should be javascript", "javascript".equals(language));
-
- }
-
- public void testBasicChangedPDBack() throws IOException {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForJSP.ContentTypeID_JSP);
- assertTrue("model could not be created!", model != null);
-
- // Now, assigning use a page directive, but leaving embedded type the same as default
- model.getStructuredDocument().setText(this, "<%@ page contentType=\"text/html\" language=\"java\" %>");
- PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) ((IDOMModel) model).getDocument().getAdapterFor(PageDirectiveAdapter.class);
-
- String contentType = pageDirectiveAdapter.getContentType();
- String language = pageDirectiveAdapter.getLanguage();
-
- assertTrue("contentType should be html", "text/html".equals(contentType));
- assertTrue("language should be java", "java".equals(language));
-
- // change to javascript
- model.getStructuredDocument().replaceText(this, 43, 4, "javascript");
-
- contentType = pageDirectiveAdapter.getContentType();
- language = pageDirectiveAdapter.getLanguage();
-
- assertTrue("contentType should be html", "text/html".equals(contentType));
- assertTrue("language should be javascript", "javascript".equals(language));
-
- // change back to java
- model.getStructuredDocument().replaceText(this, 43, 10, "java");
-
- contentType = pageDirectiveAdapter.getContentType();
- language = pageDirectiveAdapter.getLanguage();
-
- assertTrue("contentType should be html", "text/html".equals(contentType));
- assertEquals("java", language);
- }
-
- public void testSetEmbeddedType(){
- IStructuredModel model = createUnmanagedHTMLModel();
- PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) ((IDOMModel) model).getDocument().getAdapterFor(PageDirectiveAdapter.class);
- EmbeddedTypeHandler embeddedXMLHandler = new EmbeddedXML();
- pageDirectiveAdapter.setEmbeddedType(embeddedXMLHandler);
-
- EmbeddedTypeHandler handler = pageDirectiveAdapter.getEmbeddedType();
- assertTrue("incorrect embedded handler", handler == embeddedXMLHandler);
- }
-
- public void testAdapt() {
- IDOMModel model = createUnmanagedHTMLModel();
- PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) model.getDocument().getAdapterFor(PageDirectiveAdapter.class);
- Node ownerNode = model.getDocument();
-
- ModelQueryAdapter embeddedAdapter = (ModelQueryAdapter) pageDirectiveAdapter.adapt((INodeNotifier) ownerNode, ModelQueryAdapter.class);
- assertNotNull("could not adapt embedded adapter", embeddedAdapter);
- }
-
- public void testAddEmbeddedFactory() {
- IDOMModel model = createUnmanagedHTMLModel();
- PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) model.getDocument().getAdapterFor(PageDirectiveAdapter.class);
- pageDirectiveAdapter.addEmbeddedFactory(new MyEmbeddedFactory());
- }
-
- public void testSetLanguage() {
- IDOMModel model = createUnmanagedHTMLModel();
- PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) model.getDocument().getAdapterFor(PageDirectiveAdapter.class);
- pageDirectiveAdapter.setLanguage("text/xml");
- assertTrue("set language failed", pageDirectiveAdapter.getLanguage().equals("text/xml"));
- }
-
- public void testGetTarget() {
- IDOMModel model = createUnmanagedHTMLModel();
- PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) model.getDocument().getAdapterFor(PageDirectiveAdapter.class);
- INodeNotifier notifier = pageDirectiveAdapter.getTarget();
- assertNotNull("target is null", notifier);
- }
-
- public void testRelease() {
- IDOMModel model = createUnmanagedHTMLModel();
- PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) model.getDocument().getAdapterFor(PageDirectiveAdapter.class);
- pageDirectiveAdapter.release();
- // considered "success" if doesn't through exception
- assertTrue(true);
- }
-
- private IDOMModel createUnmanagedHTMLModel() {
- // First make (empty) structuredDocument
- IModelManager modelManager = StructuredModelManager.getModelManager();
- IStructuredModel model = modelManager.createUnManagedStructuredModelFor(ContentTypeIdForJSP.ContentTypeID_JSP);
- assertTrue("model could not be created!", model != null);
-
- // Now, assigning use a page directive, but leaving embedded type the same as default
- model.getStructuredDocument().setText(this, "<%@ page contentType=\"text/html\" language=\"java\" %>");
- return (IDOMModel)model;
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/TestStructuredPartitionerJSP.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/TestStructuredPartitionerJSP.java
deleted file mode 100644
index 6a5e1ca98..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/TestStructuredPartitionerJSP.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.partitioning;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringBufferInputStream;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jst.jsp.core.text.IJSPPartitions;
-import org.eclipse.wst.css.core.text.ICSSPartitions;
-import org.eclipse.wst.html.core.text.IHTMLPartitions;
-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.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-
-import com.ibm.icu.text.DecimalFormat;
-
-public class TestStructuredPartitionerJSP extends TestCase {
-
- private boolean DEBUG_PRINT_RESULT = false;
- protected ITypedRegion[] partitions = null;
-
- private boolean useFormatter = true;
- protected DecimalFormat formatter;
-
- public TestStructuredPartitionerJSP(String name) {
- super(name);
- if (DEBUG_PRINT_RESULT && useFormatter)
- formatter = new DecimalFormat();
- }
-
- public void testJSP1() throws IOException, BadLocationException { // DW 05/01/2003 I modified this test, after creating test6,
- // and changing partioner to pick up end *> as part of page directive
- // partition (for highlighting to work right).
- int expectedPartitions = 8;
- int nPartitions = doComputePartitioningTest("testfiles/jsp/example01.jsp");
- assertTrue("wrong number of partitions", nPartitions == expectedPartitions);
- checkSeams();
- verifyPartitionTypes(partitions, new String[]{IJSPPartitions.JSP_DIRECTIVE, IHTMLPartitions.HTML_DEFAULT, IJSPPartitions.JSP_DIRECTIVE, IHTMLPartitions.HTML_DEFAULT, IJSPPartitions.JSP_CONTENT_DELIMITER, IJSPPartitions.JSP_CONTENT_JAVA, IJSPPartitions.JSP_CONTENT_DELIMITER, IHTMLPartitions.HTML_DEFAULT});
- }
-
- public void testJSP2() throws IOException, BadLocationException {
- int expectedPartitions = 11;
- int nPartitions = doComputePartitioningTest("testfiles/jsp/example02.jsp");
- assertTrue("wrong number of partitions", nPartitions == expectedPartitions);
- checkSeams();
- verifyPartitionTypes(partitions, new String[]{IHTMLPartitions.HTML_DEFAULT, IJSPPartitions.JSP_CONTENT_DELIMITER, IJSPPartitions.JSP_CONTENT_JAVA, IJSPPartitions.JSP_CONTENT_DELIMITER, IHTMLPartitions.HTML_DEFAULT, IHTMLPartitions.HTML_COMMENT, IHTMLPartitions.HTML_DEFAULT, IJSPPartitions.JSP_CONTENT_DELIMITER, IJSPPartitions.JSP_CONTENT_JAVA, IJSPPartitions.JSP_CONTENT_DELIMITER, IHTMLPartitions.HTML_DEFAULT,});
- }
-
- public void testJSP3() throws IOException, BadLocationException {
- int expectedPartitions = 5;
- int nPartitions = doComputePartitioningTest("testfiles/jsp/example03.jsp");
- assertTrue("wrong number of partitions", nPartitions == expectedPartitions);
- checkSeams();
- verifyPartitionTypes(partitions, new String[]{IHTMLPartitions.HTML_DEFAULT, IHTMLPartitions.SCRIPT, IHTMLPartitions.HTML_DEFAULT, ICSSPartitions.STYLE, IHTMLPartitions.HTML_DEFAULT,});
- }
-
- public void testJSP4() throws IOException, BadLocationException {
- int expectedPartitions = 8;
- int nPartitions = doComputePartitioningTest("testfiles/jsp/example04.jsp");
- assertTrue("wrong number of partitions", nPartitions == expectedPartitions);
- checkSeams();
- verifyPartitionTypes(partitions, new String[]{IHTMLPartitions.HTML_DEFAULT, IJSPPartitions.JSP_CONTENT_DELIMITER, IJSPPartitions.JSP_CONTENT_JAVA, IJSPPartitions.JSP_CONTENT_DELIMITER, "org.eclipse.wst.html.SCRIPT.language.MYLANGUAGE", IHTMLPartitions.HTML_DEFAULT, IJSPPartitions.JSP_COMMENT, IHTMLPartitions.HTML_DEFAULT});
- }
-
- public void testJSP5() throws IOException, BadLocationException {
- int expectedPartitions = 17;
- int nPartitions = doComputePartitioningTest("testfiles/jsp/example05.jsp");
- assertTrue("wrong number of partitions", nPartitions == expectedPartitions);
- checkSeams();
- verifyPartitionTypes(partitions, new String[]{IHTMLPartitions.HTML_DEFAULT, IHTMLPartitions.SCRIPT, IHTMLPartitions.HTML_DEFAULT, IJSPPartitions.JSP_CONTENT_DELIMITER, IJSPPartitions.JSP_CONTENT_JAVA, IJSPPartitions.JSP_CONTENT_DELIMITER, IHTMLPartitions.HTML_DEFAULT, IJSPPartitions.JSP_COMMENT, IHTMLPartitions.HTML_DEFAULT, IJSPPartitions.JSP_CONTENT_DELIMITER, IJSPPartitions.JSP_CONTENT_JAVA, IJSPPartitions.JSP_CONTENT_DELIMITER, IHTMLPartitions.HTML_DEFAULT, IJSPPartitions.JSP_CONTENT_DELIMITER, IJSPPartitions.JSP_CONTENT_JAVA, IJSPPartitions.JSP_CONTENT_DELIMITER, IHTMLPartitions.HTML_DEFAULT});
- }
-
- public void testJSP6() throws IOException, BadLocationException {
- int expectedPartitions = 1;
- int nPartitions = doComputePartitioningTest("testfiles/jsp/example06.jsp");
- assertTrue("wrong number of partitions", nPartitions == expectedPartitions);
- checkSeams();
- verifyPartitionTypes(partitions, new String[]{IJSPPartitions.JSP_DIRECTIVE,});
- }
-
- public void testPerfJSP() throws IOException, BadLocationException {
- //int expectedPartitions = 6;
- //XXX FIXME!
- //nt nPartitions =
- doTimedComputePartitioningTest("testfiles/jsp/company300k.jsp");
- //assertTrue("wrong number of partitions", nPartitions == expectedPartitions);
- //checkSeams();
- //verifyPartitionTypes(partitions, new String[]{IXMLPartitions.ST_XML_PI, IXMLPartitions.ST_DEFAULT_XML, IXMLPartitions.ST_XML_DECLARATION, IXMLPartitions.ST_DEFAULT_XML, IXMLPartitions.ST_XML_COMMENT, IXMLPartitions.ST_DEFAULT_XML});
- }
-
- public void testEmpty() throws IOException, BadLocationException {
- int expectedPartitions = 1;
- int nPartitions = doComputePartitioningTest("testfiles/xml/empty.xml");
- assertTrue("wrong number of partitions", nPartitions == expectedPartitions);
- checkSeams();
- verifyPartitionTypes(partitions, new String[]{IXMLPartitions.XML_DEFAULT});
- }
-
- /**
- * Ensure that the current list of partitions are all adjacent to one another
- */
- protected void checkSeams() {
- if (partitions == null)
- return;
- int offset = 0;
- for (int i = 0; i < partitions.length; i++) {
- assertEquals("partitions are not contiguous!", partitions[i].getOffset(), offset);
- offset = partitions[i].getOffset() + partitions[i].getLength();
- }
- }
-
- /**
- * Compute the partitions for the given filename using the default partitioner
- * for that file type.
- *
- * @param filename
- * @return int
- * @throws IOException
- * @throws BadLocationException
- */
- protected int doComputePartitioningTest(String filename) throws IOException, BadLocationException {
-
- IModelManager modelManager = StructuredModelManager.getModelManager();
- InputStream inStream = getClass().getResourceAsStream(filename);
- if (inStream == null)
- inStream = new StringBufferInputStream("");
- IStructuredModel model = modelManager.getModelForEdit(filename, inStream, null);
-
- IStructuredDocument structuredDocument = model.getStructuredDocument();
- if (DEBUG_PRINT_RESULT && useFormatter) {
- double baseTen = Math.log(10);
- formatter.setMinimumIntegerDigits((int) (Math.log(structuredDocument.getLength()) / baseTen) + 1);
- formatter.setGroupingUsed(false);
- }
-
- partitions = structuredDocument.computePartitioning(0, structuredDocument.getLength());
- if (DEBUG_PRINT_RESULT) {
- String contents = null;
-
- System.out.println("\nfilename: " + filename);
- for (int i = 0; i < partitions.length; i++) {
- try {
- contents = structuredDocument.get(partitions[i].getOffset(), partitions[i].getLength());
- }
- catch (BadLocationException e) {
- contents = "*error*";
- }
- if (useFormatter)
- System.out.println(formatter.format(partitions[i].getOffset()) + ":" + formatter.format(partitions[i].getLength()) + " - " + partitions[i].getType() + " [" + StringUtils.escape(contents) + "]");
- else
- System.out.println(partitions[i] + " [" + StringUtils.escape(contents) + "]");
- }
- }
- checkSeams();
- model.releaseFromEdit();
- inStream.close();
-
- if (partitions == null)
- return -1;
- return partitions.length;
- }
-
- /**
- * Compute the partitions for the given filename using the default partitioner
- * for that file type.
- *
- * @param filename
- * @return int
- * @throws IOException
- * @throws BadLocationException
- */
- protected int doTimedComputePartitioningTest(String filename) throws IOException, BadLocationException {
-
- IModelManager modelManager = StructuredModelManager.getModelManager();
- InputStream inStream = getClass().getResourceAsStream(filename);
- if (inStream == null)
- inStream = new StringBufferInputStream("");
- IStructuredModel model = modelManager.getModelForEdit(filename, inStream, null);
-
- IStructuredDocument structuredDocument = model.getStructuredDocument();
- if (DEBUG_PRINT_RESULT && useFormatter) {
- double baseTen = Math.log(10);
- formatter.setMinimumIntegerDigits((int) (Math.log(structuredDocument.getLength()) / baseTen) + 1);
- formatter.setGroupingUsed(false);
- }
- long startTime = System.currentTimeMillis();
- partitions = structuredDocument.computePartitioning(0, structuredDocument.getLength());
- long endTime = System.currentTimeMillis();
- if (DEBUG_PRINT_RESULT) {
-
- String contents = null;
-
- System.out.println("\nfilename: " + filename);
- System.out.println("Time to compute " + partitions.length + ": " + (endTime-startTime) + " (msecs)");
- for (int i = 0; i < partitions.length; i++) {
- try {
- contents = structuredDocument.get(partitions[i].getOffset(), partitions[i].getLength());
- }
- catch (BadLocationException e) {
- contents = "*error*";
- }
- if (useFormatter)
- System.out.println(formatter.format(partitions[i].getOffset()) + ":" + formatter.format(partitions[i].getLength()) + " - " + partitions[i].getType() + " [" + StringUtils.escape(contents) + "]");
- else
- System.out.println(partitions[i] + " [" + StringUtils.escape(contents) + "]");
- }
- }
- checkSeams();
- model.releaseFromEdit();
- inStream.close();
-
- if (partitions == null)
- return -1;
- return partitions.length;
- }
-
- /**
- * Retrieves the single partition at the given offset for the given file, using the
- * default partitioner for that file type. This test allows for verifying the zero-length
- * partitioning behavior.
- *
- * @param filename
- * @param offset
- * @return ITypedRegion
- * @throws IOException
- * @throws BadLocationException
- */
- protected ITypedRegion getPartitionTest(String filename, int offset) throws IOException, BadLocationException {
- IModelManager modelManager = StructuredModelManager.getModelManager();
- InputStream inStream = getClass().getResourceAsStream(filename);
- IStructuredModel model = modelManager.getModelForEdit(filename, inStream, null);
-
- IStructuredDocument structuredDocument = model.getStructuredDocument();
-
- partitions = null;
- ITypedRegion partition = structuredDocument.getPartition(offset);
- if (DEBUG_PRINT_RESULT) {
- String contents = null;
-
- System.out.println("\nfilename: " + filename);
- try {
- contents = structuredDocument.get(partition.getOffset(), partition.getLength());
- }
- catch (BadLocationException e) {
- contents = "*error*";
- }
- System.out.println(partition + " [" + StringUtils.escape(contents) + "]");
- }
- model.releaseFromEdit();
- inStream.close();
-
- return partition;
- }
-
- /**
- * Verifies that the given partitions are of the given partition types
- * @param typedRegions
- * @param types
- */
- protected void verifyPartitionTypes(ITypedRegion actualTypedRegions[], String expectedTypes[]) {
- for (int i = 0; i < expectedTypes.length; i++)
- assertEquals("partition type mismatched", expectedTypes[i], actualTypedRegions[i].getType());
- }
-
- /**
- * Verifies that the given partitions begin at the given offsets
- * @param typedRegions
- * @param types
- */
- protected void verifyPartitionRegions(ITypedRegion typedRegions[], int offsets[]) {
- for (int i = 0; i < offsets.length; i++) {
- assertEquals("offset mismatched", typedRegions[i].getOffset(), offsets[i]);
- if (i > 0) {
- assertEquals("lengths misaligned", typedRegions[i].getOffset(), typedRegions[i - 1].getOffset() + typedRegions[i - 1].getLength());
- }
- }
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/company300k.jsp b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/company300k.jsp
deleted file mode 100644
index cadf5e7fe..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/company300k.jsp
+++ /dev/null
@@ -1,8099 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>The Ultimate A Company</title>
- </head>
- <body>
- <p>
- <img src="../banner.gif" height="51" width="659" alt="" />
- </p>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <table width="84%">
- <tbody>
- <tr>
- <td rowspan="2">
- <h2>
- <img src="../leftpanel.jpg" height="498" width="124" alt="" />
- </h2>
- </td>
- <td colspan="2">
- <h4>Some people think that A is just another letter. We are not some people. We at the Ultimate A Company think that A is special. When approached by a team united by the common passion, skills and devotion to the world of letters, a humble A can become a true work of art.&nbsp;</h4>
- <h4>
- Take a look at our product catalog and we are sure you will agree. We design, manufacture and ship As of any shape, size and color, finished in any way imaginable. And we will be happy to cater to your every desire and make a custom, one-of-a-kind A that will last for a lifetime. Our passion and our attention to detail all work towards one final goal - to deliver state of the '
- <b>A</b>
- 'rt.&nbsp;
- </h4>
- <h3>Don't settle for ordinary. You deserve only the best.</h3>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Products
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- What's New
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Order Online
- </h3>
- <h3>
- <img src="../bullet.gif" height="30" width="38" alt="" />
- Support
- </h3>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- For problems and suggestions related to this web site, write to Webmaster:
- <a href="mailto:webmaster@theultimateacompany.com">webmaster@theultimateacompany.com</a>
- </td>
- </tr>
- </tbody>
- </table>
- <p>
- <img src="../footer.gif" height="25" width="659" alt="" />
- </p>
- </body>
-</html> \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example01.jsp b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example01.jsp
deleted file mode 100644
index cc7c54d9e..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example01.jsp
+++ /dev/null
@@ -1,3 +0,0 @@
-<%@ page contentType="text/html" %>
-<jsp:directive.page contentType=text/html" />
-<HTML id="<% java code "string" section %>">
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example02.jsp b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example02.jsp
deleted file mode 100644
index a6d0ec915..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example02.jsp
+++ /dev/null
@@ -1,9 +0,0 @@
- <p>
- <% testing "123" test test;
- // test
- one two three
- %>
- <!-- 78 -->
- <table id = "<% test %>" attrib=junk>
- </BODY>
- </HTML>
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example03.jsp b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example03.jsp
deleted file mode 100644
index 8ffd3101b..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example03.jsp
+++ /dev/null
@@ -1,8 +0,0 @@
-<HTML>
-<SCRIPT>
-java script section
-</SCRIPT>
-<STYLE>
- style section
- </STYLE>
-</HTML>
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example04.jsp b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example04.jsp
deleted file mode 100644
index 6808704a3..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example04.jsp
+++ /dev/null
@@ -1,3 +0,0 @@
-<script language="MyLanguage"><%= "A" %>
- </SCRIPT>
-<%-- --%>
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example05.jsp b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example05.jsp
deleted file mode 100644
index a6151d3a9..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example05.jsp
+++ /dev/null
@@ -1,14 +0,0 @@
-<formatting>
-<script type="text/javascript">
-// Copyright 2000,2001 by www.example.com
- document.URL ="a";
-</script>
-
-<% String a = "a"; %>
-<%-- test comment --%>
-<%=
-
-" aaaaa "
-
-%>
-<%! %>
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example06.jsp b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example06.jsp
deleted file mode 100644
index 85173f4d2..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/partitioning/testfiles/jsp/example06.jsp
+++ /dev/null
@@ -1 +0,0 @@
-<%@page language="javascript" %> \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/registry/AdapterFactoryRegistryTest.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/registry/AdapterFactoryRegistryTest.java
deleted file mode 100644
index 6a2eb62ea..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/registry/AdapterFactoryRegistryTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.registry;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.wst.css.core.internal.provisional.contenttype.ContentTypeIdForCSS;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistry;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistryImpl;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-
-/**
- * @author pavery
- */
-public class AdapterFactoryRegistryTest extends TestCase {
-
- private final String CLASSNAME_HTML_FACTORY = "org.eclipse.wst.html.ui.internal.registry.AdapterFactoryProviderForHTML";
- private final String CLASSNAME_DTD_FACTORY = "org.eclipse.wst.dtd.ui.internal.registry.AdapterFactoryProviderForDTD";
- private final String CLASSNAME_JSP_FACTORY = "org.eclipse.jst.jsp.ui.internal.registry.AdapterFactoryProviderForJSP";
- private final String CLASSNAME_CSS_FACTORY = "org.eclipse.wst.css.ui.internal.registry.AdapterFactoryProviderCSS";
- private final String CLASSNAME_XML_FACTORY = "org.eclipse.wst.xml.ui.internal.registry.AdapterFactoryProviderForXML";
-
-
- public void testCreate() {
- AdapterFactoryRegistry instance = AdapterFactoryRegistryImpl.getInstance();
- assertNotNull(instance);
- }
-
- public void testGetAllFactories() {
- AdapterFactoryRegistry instance = AdapterFactoryRegistryImpl.getInstance();
- Iterator it = instance.getAdapterFactories();
- Object provider = null;
-
- // all providers expected classnames added here
- List known = new ArrayList();
- known.add(CLASSNAME_HTML_FACTORY);
- known.add(CLASSNAME_DTD_FACTORY);
- known.add(CLASSNAME_JSP_FACTORY);
- known.add(CLASSNAME_CSS_FACTORY);
- known.add(CLASSNAME_XML_FACTORY);
-
- while (it.hasNext()) {
- provider = it.next();
- known.remove(provider.getClass().getName());
- // System.out.println(provider.getClass().getName());
- }
-
- // should have encountered all expected adapter factories.
- assertEquals("unknown (extra) adapter factories found", 0, known.size());
- }
-
- public void testGetFactoriesXML() {
-
- List known = new ArrayList();
- known.add(CLASSNAME_XML_FACTORY);
-
- getFactoriesForContentType(known, ContentTypeIdForXML.ContentTypeID_XML, CLASSNAME_HTML_FACTORY);
- }
-
- public void testGetFactoriesHTML() {
-
- List known = new ArrayList();
- known.add(CLASSNAME_JSP_FACTORY);
-
- getFactoriesForContentType(known, ContentTypeIdForJSP.ContentTypeID_JSP, CLASSNAME_XML_FACTORY);
- }
-
- public void testGetFactoriesJSP() {
-
- List known = new ArrayList();
- known.add(CLASSNAME_HTML_FACTORY);
-
- getFactoriesForContentType(known, ContentTypeIdForHTML.ContentTypeID_HTML, CLASSNAME_DTD_FACTORY);
- }
-
- public void testGetFactoriesDTD() {
-
- List known = new ArrayList();
- known.add(CLASSNAME_DTD_FACTORY);
-
- getFactoriesForContentType(known, "org.eclipse.wst.dtd.core.dtdsource", CLASSNAME_HTML_FACTORY);
- }
-
- public void testGetFactoriesCSS() {
-
- List known = new ArrayList();
- known.add(CLASSNAME_CSS_FACTORY);
-
- getFactoriesForContentType(known, ContentTypeIdForCSS.ContentTypeID_CSS, CLASSNAME_JSP_FACTORY);
- }
-
- /**
- * Compare to a expected list of AdapterFactoryProviders (may be smaller
- * than the actual list) for a given contentTypeId. At minimum these
- * expected providers must be found to pass.
- *
- * @param expected
- * @param contentTypeId
- */
- private void getFactoriesForContentType(List expected, String contentTypeId, String notExpectedClassname) {
-
- AdapterFactoryRegistryImpl instance = (AdapterFactoryRegistryImpl) AdapterFactoryRegistryImpl.getInstance();
- Iterator it = instance.getAdapterFactories(contentTypeId);
- Object provider = null;
- while (it.hasNext()) {
- provider = it.next();
- expected.remove(provider.getClass().getName());
-
- // System.out.println("encountered provider: " +
- // provider.getClass().getName());
- assertTrue("!provider: " + notExpectedClassname + " shouldn't be in the list!", !notExpectedClassname.equals(provider.getClass().getName()));
- }
- // we should have at least found the expected factory (or factories)
- assertTrue("extra providers (expected none): " + expected, expected.isEmpty());
- }
-}
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/search/JSPSearchTests.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/search/JSPSearchTests.java
deleted file mode 100644
index 70fb20a4b..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/search/JSPSearchTests.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.search;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.search.IJavaSearchConstants;
-import org.eclipse.jdt.core.search.SearchDocument;
-import org.eclipse.jdt.core.search.SearchPattern;
-import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapterFactory;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchScope;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport;
-import org.eclipse.jst.jsp.ui.internal.java.search.BasicJSPSearchRequestor;
-import org.eclipse.jst.jsp.ui.tests.util.FileUtil;
-import org.eclipse.jst.jsp.ui.tests.util.ProjectUnzipUtility;
-import org.eclipse.osgi.service.datalocation.Location;
-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.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-
-
-/**
- * Tests for JSPSearchSupport
- * @author pavery
- */
-public class JSPSearchTests extends TestCase implements IJavaSearchConstants {
-
- /**
- * to accept search matches
- * addCheckMatch(...) for matches you expect, run search support, checkValid() to see if all expected got hit
- */
- class TestJspSearchRequestor extends BasicJSPSearchRequestor {
-
- private List matches = null;
-
- public TestJspSearchRequestor() {
- this.matches = new ArrayList();
- }
-
- // called by search framework
- protected void addSearchMatch(IStructuredDocument jspDocument, IFile jspFile, int jspStart, int jspEnd, String jspText) {
- this.matches.remove(new TestSearchMatch(jspFile.getName(), jspStart, jspEnd));
- }
-
- public void beginReporting() {
- // do nothing since we have no UI, don't access ISearchResultView
- }
-
- public void endReporting() {
- // do nothing since we have no UI, don't access ISearchResultView
- }
-
- public void addCheckMatch(String filename, int jspStart, int jspEnd) {
- this.matches.add(new TestSearchMatch(filename, jspStart, jspEnd));
- }
-
- public boolean checkValid() {
- return this.matches.isEmpty();
- }
-
- public void clear() {
- this.matches.clear();
- }
- }
-
- /**
- * to validate search matches (checkMatch matches a search hit)
- */
- class TestSearchMatch {
-
- public String filename = null;
- public int jspStart = -1;
- public int jspEnd = -1;
-
- public TestSearchMatch(String filename, int jspStart, int jspEnd) {
- this.filename = filename;
- this.jspStart = jspStart;
- this.jspEnd = jspEnd;
- }
-
- public boolean equals(Object obj) {
- if (!(obj instanceof TestSearchMatch))
- return false;
-
- TestSearchMatch possible = (TestSearchMatch) obj;
- return this.filename.equalsIgnoreCase(possible.filename) && this.jspStart == possible.jspStart && this.jspEnd == possible.jspEnd;
- }
- }
-
- private ProjectUnzipUtility projUtil = null;
- private boolean isSetup = false;
-
- public JSPSearchTests() {
- super("JSP Search Tests");
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- if (!this.isSetup) {
- doSetup();
- this.isSetup = true;
- }
- }
-
- private void doSetup() throws Exception {
-
- this.projUtil = new ProjectUnzipUtility();
-
- // root of workspace directory
- Location platformLocation = Platform.getInstanceLocation();
-
- File zipFile = FileUtil.makeFileFor(ProjectUnzipUtility.PROJECT_ZIPS_FOLDER, "jspsearch_tests.zip", ProjectUnzipUtility.PROJECT_ZIPS_FOLDER);
- this.projUtil.unzipAndImport(zipFile, platformLocation.getURL().getFile());
- this.projUtil.initJavaProject("judo");
-
- //JSPSearchSupport.getInstance().indexWorkspaceAndWait();
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- // do nothing
- }
-
- public void testIndexWorkspace() {
- JSPSearchSupport support = JSPSearchSupport.getInstance();
- SearchDocument doc = JSPSearchSupport.getInstance().getSearchDocument("/judo/searchTestJSP.java");
- assertNotNull("couldn't retrieve:'/judo/searchTestJSP.java'", doc);
-
- doc = support.getSearchDocument("/judo/searchTestJSP2.java");
- assertNotNull("couldn't retrieve:'/judo/searchTestJSP2.java'", doc);
-
- doc = support.getSearchDocument("/judo/searchTestJSP3.java");
- assertNotNull("couldn't retrieve:'/judo/searchTestJSP3.java'", doc);
- }
-
- public void testSearchField() {
-
- TestJspSearchRequestor requestor = new TestJspSearchRequestor();
- requestor.addCheckMatch("searchTestJSP.jsp", 93, 106);
- JSPSearchSupport.getInstance().search("searchForThis", new JSPSearchScope(), FIELD, ALL_OCCURRENCES, SearchPattern.R_EXACT_MATCH, true, requestor);
- assertTrue("did not find all expected matches: searchForThis", requestor.checkValid());
- }
-
- public void testSearchMethod() {
-
- TestJspSearchRequestor requestor = new TestJspSearchRequestor();
- requestor.addCheckMatch("searchTestJSP.jsp", 143, 158);
- requestor.addCheckMatch("searchTestJSP.jsp", 298, 315);
- JSPSearchSupport.getInstance().search("searchForMethod", new JSPSearchScope(), METHOD, ALL_OCCURRENCES, SearchPattern.R_EXACT_MATCH, true, requestor);
- assertTrue("did not find all expected matches: searchForMethod", requestor.checkValid());
- }
-
- public void testSearchPatternMatch() {
-
- TestJspSearchRequestor requestor = new TestJspSearchRequestor();
- requestor.addCheckMatch("searchTestJSP.jsp", 93, 106);
- requestor.addCheckMatch("searchTestJSP2.jsp", 116, 129);
- requestor.addCheckMatch("searchTestJSP2.jsp", 152, 165);
- JSPSearchSupport.getInstance().search("search*", new JSPSearchScope(), FIELD, ALL_OCCURRENCES, SearchPattern.R_PATTERN_MATCH, true, requestor);
- assertTrue("did not find all expected matches: search*", requestor.checkValid());
- }
-
- public void testSearchProjectClasses() {
-
- TestJspSearchRequestor requestor = new TestJspSearchRequestor();
- requestor.addCheckMatch("searchTestJSP3.jsp", 148, 157);
- requestor.addCheckMatch("searchTestJSP3.jsp", 170, 179);
- requestor.addCheckMatch("searchTestJSP3.jsp", 263, 273);
- requestor.addCheckMatch("searchTestJSP3.jsp", 299, 309);
- requestor.addCheckMatch("searchTestJSP3.jsp", 408, 417);
- requestor.addCheckMatch("searchTestJSP3.jsp", 430, 439);
- JSPSearchSupport.getInstance().search("Jellybean*", new JSPSearchScope(), TYPE, ALL_OCCURRENCES, SearchPattern.R_PATTERN_MATCH, true, requestor);
- assertTrue("did not find all expected matches: search*", requestor.checkValid());
- }
-
- public void testSearchLocalVariable() {
-
- IDOMModel xmlModel = null;
- try {
- IPath jspTestFilePath = new Path("judo/SEARCH/searchTestJSP3.jsp");
- IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(jspTestFilePath);
- xmlModel = (IDOMModel) getStructuredModelForRead(file);
- setupAdapterFactory(xmlModel);
-
- IDOMDocument doc = xmlModel.getDocument();
- JSPTranslationAdapter adapter = (JSPTranslationAdapter) doc.getAdapterFor(IJSPTranslation.class);
- JSPTranslation translation = adapter.getJSPTranslation();
- IJavaElement element = translation.getElementsFromJspRange(377, 384)[0];
-
- TestJspSearchRequestor requestor = new TestJspSearchRequestor();
- requestor.addCheckMatch("searchTestJSP3.jsp", 377, 384);
- JSPSearchSupport.getInstance().search(element, new JSPSearchScope(), requestor);
- assertTrue("did not find all expected matches: search*", requestor.checkValid());
- }
- finally {
- if (xmlModel != null)
- xmlModel.releaseFromRead();
- }
- }
-
- private IStructuredModel getStructuredModelForRead(IFile file) {
-
- try {
- IModelManager modelManager = StructuredModelManager.getModelManager();
- return modelManager.getModelForRead(file);
- }
- catch (IOException ioex) {
- System.out.println("couldn't open file:" + file);
- }
- catch (CoreException e) {
- e.printStackTrace();
- }
- return null;
- }
-
- /**
- * add the factory for JSPTranslationAdapter here
- * @param sm
- */
- private void setupAdapterFactory(IStructuredModel sm) {
-
- JSPTranslationAdapterFactory factory = new JSPTranslationAdapterFactory();
- sm.getFactoryRegistry().addFactory(factory);
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/threaded/ThreadedModelReadEditTest.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/threaded/ThreadedModelReadEditTest.java
deleted file mode 100644
index b5496747d..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/threaded/ThreadedModelReadEditTest.java
+++ /dev/null
@@ -1,293 +0,0 @@
-package org.eclipse.jst.jsp.ui.tests.threaded;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-import org.eclipse.core.filebuffers.ITextFileBufferManager;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslator;
-import org.eclipse.jst.jsp.ui.tests.util.ProjectUtil;
-import org.eclipse.text.edits.InsertEdit;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * Created for: https://bugs.eclipse.org/bugs/show_bug.cgi?id=116523
- */
-public class ThreadedModelReadEditTest extends TestCase {
-
- private final String PROJECT_NAME = "PROJECT_116523";
- private static boolean isSetup = false;
-
- private class TranslateJob extends Job {
- String fFilePath = null;
- public TranslateJob(String filename, String jobname) {
- super(jobname);
- fFilePath = filename;
- }
- protected IStatus run(IProgressMonitor monitor) {
- IFile f = getOrCreateFile(fFilePath);
- JSPTranslator trans = new JSPTranslator();
- IStructuredModel sModel = null;
- try {
- sModel = StructuredModelManager.getModelManager().getModelForRead(f);
- if(sModel != null) {
- trans.reset((IDOMNode)sModel.getIndexedRegion(0), new NullProgressMonitor());
- trans.translate();
- }
-
- }
- catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- catch (CoreException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- finally {
- if(sModel != null)
- sModel.releaseFromRead();
- }
-
- return Status.OK_STATUS;
- }
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- if(!isSetup) {
- doSetup();
- isSetup = true;
- }
- }
-
- private void doSetup() {
- createProject();
- }
- /*
- * create 100 test files
- * repeat doTest() on those 100 files 5x
- */
-// public void test_116523() {
-//
-// // try and do some concurrent editing/indexing
-// for(int j=0; j<5; j++) {
-// for(int i=0; i<100; i++)
-// doTest("test_" + i + ".jsp");
-// }
-// }
-// /*
-// * doTest() on same file 100x
-// */
-// public void test_116523_2() {
-//
-// // try and do some concurrent editing/indexing
-// for(int i=0; i<100; i++)
-// doTest("test_1.jsp");
-// }
-
- /*
- * doTest() (insert text & edit dom)
- * and force JSPTranslation on another thread
- *
- * repeat lots of times
- */
- public void test_116523_3() {
- String filename = "t_test_1.jsp";
-
- getOrCreateFile(PROJECT_NAME + "/" + filename);
-
- for(int j=0; j<100; j++) {
- TranslateJob translateJob = new TranslateJob(PROJECT_NAME + "/" + filename, "JSP Translate Job");
- translateJob.schedule();
- performEdits(filename);
- }
- }
-
- private void performEdits(String filePath) {
-
- IFile blankJspFile = getOrCreateFile(PROJECT_NAME + "/" + filePath);
-
- // document edit
- iDocumentInsert(blankJspFile, "<logic:iterate id=\"iterateID\" type=\"java.util.List\" indexId=\"indexID\"></logic:iterate>\n",0);
-
- // dom edit
- HashMap attrs = new HashMap();
- attrs.put("uri", "struts-logic.tld");
- attrs.put("prefix", "logic");
- domInsertElement(blankJspFile, "jsp:directive.taglib", attrs, 0);
- }
-
- protected IFile getOrCreateFile(String filePath) {
- IFile blankJspFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(filePath));
- if (blankJspFile != null && !blankJspFile.exists()) {
- try {
- blankJspFile.create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor());
- }
- catch (CoreException e) {
- e.printStackTrace();
- }
- }
- return blankJspFile;
- }
-
- public void domInsertElement(IFile file, String tagName, HashMap attributes, int insertionPoint) {
- IStructuredModel sModel = null;
- try {
- sModel = StructuredModelManager.getModelManager().getModelForEdit(file);
- if(sModel != null) {
- Document domDoc = (Document)sModel.getAdapter(Document.class );
- IndexedRegion r = sModel.getIndexedRegion(insertionPoint);
- if(r instanceof Node) {
- Element e = domDoc.createElement(tagName);
- Iterator iter = attributes.keySet().iterator();
- // set attributes
- while (iter.hasNext()) {
- String attr = (String) iter.next();
- String val = (String)attributes.get(attr);
-
- Attr attrNode = domDoc.createAttribute(attr);
- attrNode.setValue(val);
- e.setAttributeNode(attrNode);
- }
- domDoc.insertBefore(e, (Node)r);
- domDoc.insertBefore(domDoc.createTextNode("\n"), (Node)r);
- }
- sModel.save();
- }
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- catch (CoreException e) {
- e.printStackTrace();
- }
- finally {
- if(sModel != null)
- sModel.releaseFromEdit();
- }
- // System.out.println("inserted element, dom style");
- }
-
- public void iDocumentInsert(IFile file, String text, int insertionPoint) {
-
- // get the file's text buffer
- ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager();
- IPath path = file.getFullPath();
- try {
- bufferManager.connect(path, null);
-
- IDocument doc = null;
-
- ITextFileBuffer buff = bufferManager.getTextFileBuffer(file.getFullPath());
- doc = buff.getDocument();
-
- boolean saveWhenDone = !buff.isDirty();
-
- InsertEdit insertEdit = new InsertEdit(insertionPoint, text);
- insertEdit.apply(doc);
-
- // if the document was not previously dirty, save it
- if (saveWhenDone)
- buff.commit(null, false);
- }
- catch (BadLocationException e) {
- e.printStackTrace();
- }
- catch (CoreException e) {
- e.printStackTrace();
- }
- finally {
- try {
- bufferManager.disconnect(path, null);
- }
- catch (CoreException e) {
- e.printStackTrace();
- }
- }
- // System.out.println("inserted text, file buffer style");
- }
-
-// private void structuredDocInsert(String filePath) {
-// // PROJECT_NAME + "/blank.jsp"
-// IFile blankJspFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(filePath));
-// if (blankJspFile != null) {
-// try {
-// blankJspFile.create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor());
-// }
-// catch (CoreException e) {
-// e.printStackTrace();
-// }
-// }
-//
-// IStructuredModel sModel = null;
-// try {
-// sModel = StructuredModelManager.getModelManager().getModelForEdit(blankJspFile);
-// if (sModel != null) {
-// IStructuredDocument sDoc = sModel.getStructuredDocument();
-//
-// String insertText1 = "<logic:iterate id=\"iterateID\" type=\"java.util.List\" indexId=\"indexID\"></logic:iterate>\n";
-// String insertText2 = "<%@taglib uri=\"struts-logic.tld\" prefix=\"logic\" %>\n";
-//
-// sDoc.replace(0, 0, insertText1);
-// sDoc.replace(0, 0, insertText2);
-//
-// JSPSearchSupport.getInstance().addJspFile(blankJspFile);
-// }
-// }
-// catch (IOException e) {
-// e.printStackTrace();
-// }
-// catch (CoreException e) {
-// e.printStackTrace();
-// }
-// catch (BadLocationException e) {
-// e.printStackTrace();
-// }
-// finally {
-// if (sModel != null)
-// sModel.releaseFromEdit();
-// }
-// }
-
- private void createProject() {
-
- // create project
- String[] natureIds = {ProjectUtil.JAVA_NATURE_ID};
- IProject proj = ProjectUtil.createProject(PROJECT_NAME, null, natureIds);
-
- // copy files into workspace
- IFile f = ProjectUtil.copyBundleEntryIntoWorkspace("/testfiles/116523/struts.jar", PROJECT_NAME + "/struts.jar");
- assertTrue(f.exists());
- f = ProjectUtil.copyBundleEntryIntoWorkspace("/testfiles/116523/struts-logic.tld", PROJECT_NAME + "/struts-logic.tld");
- assertTrue(f.exists());
-
- // add struts to classpath
- ProjectUtil.addLibraryEntry(proj, "struts.jar");
- }
-}
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/CommonXML.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/CommonXML.java
deleted file mode 100644
index 8e270ff76..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/CommonXML.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.util;
-
-
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.TransformerFactoryConfigurationError;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.jst.jsp.ui.tests.Logger;
-import org.w3c.dom.Document;
-
-/**
- */
-public class CommonXML {
-
- public synchronized static DocumentBuilder getDocumentBuilder() {
- DocumentBuilder result = null;
- try {
- result = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- }
- catch (ParserConfigurationException e) {
- Logger.logException(e);
- }
- return result;
- }
-
- public synchronized static DocumentBuilder getDocumentBuilder(boolean validating) {
- DocumentBuilder result = null;
- try {
- DocumentBuilderFactory instance = DocumentBuilderFactory.newInstance();
- instance.setValidating(validating);
- result = instance.newDocumentBuilder();
- }
- catch (ParserConfigurationException e) {
- Logger.logException(e);
- }
- return result;
- }
-
- public static void serialize(Document document, OutputStream ostream) throws IOException {
- Source domSource = new DOMSource(document);
- try {
- Transformer serializer = TransformerFactory.newInstance().newTransformer();
- try {
- serializer.setOutputProperty(OutputKeys.INDENT, "yes");
- serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
- serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-16");
- }
- catch (IllegalArgumentException e) {
- // unsupported properties
- }
- serializer.transform(domSource, new StreamResult(ostream));
- }
- catch (TransformerConfigurationException e) {
- throw new IOException(e.getMessage());
- }
- catch (TransformerFactoryConfigurationError e) {
- throw new IOException(e.getMessage());
- }
- catch (TransformerException e) {
- throw new IOException(e.getMessage());
- }
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/DateUtil.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/DateUtil.java
deleted file mode 100644
index fb3bde5cc..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/DateUtil.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.util;
-
-import java.util.Calendar;
-import java.util.Date;
-
-import com.ibm.icu.text.DateFormat;
-import com.ibm.icu.text.SimpleDateFormat;
-
-/**
- * @author davidw
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public class DateUtil {
-
- /**
- * Constructor for AllTests.
- * @param name
- */
- private static String now = null;
-
-
- public static String now() {
- // just calculate once, so whole run as same timestamp
- if (DateUtil.now == null) {
- DateFormat format = new SimpleDateFormat("yyyy'-'MM'-'dd'-'kk'-'mm'-'ss");
- Calendar calendar = Calendar.getInstance();
- Date today = calendar.getTime();
- DateUtil.now = format.format(today);
- }
- return DateUtil.now;
- }
-
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/FileUtil.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/FileUtil.java
deleted file mode 100644
index 08aa56264..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/FileUtil.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.util;
-
-import java.io.File;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Platform;
-import org.osgi.framework.Bundle;
-
-/**
- * @author davidw
- *
- */
-public class FileUtil {
- public static String fLineSeparator = System.getProperty("line.separator");
- public static String fPathSeparator = System.getProperty("path.separator");
- public static String fFileSeparator = System.getProperty("file.separator");
- public static String JSP_EDITOR_TESTS_PLUGIN_ID = "org.eclipse.jst.jsp.ui.tests";
-
- static File previousResultsDirectory = null;
- static private String logSubDirectoryPath;
-
- private static boolean notTriedYet = true;
-
- public static class DirFilenameFilter implements FilenameFilter {
- String startOfAcceptableNames;
-
- public DirFilenameFilter(String startOfDirName) {
- startOfAcceptableNames = startOfDirName;
- }
-
- /**
- * @see java.io.FileFilter#accept(File)
- */
- public boolean accept(File pathname, String filename) {
- // we'll just assume if it starts with right key, it is a directory ... for now
- return filename.startsWith(startOfAcceptableNames);
- }
-
- }
-
- public static File getPreviousResultsDirectory(String directoryRootName) throws IOException {
- if (previousResultsDirectory == null && notTriedYet) {
- Bundle bundle = Platform.getBundle(JSP_EDITOR_TESTS_PLUGIN_ID);
- URL url = bundle.getEntry("/");
- //String installPath = url.getPath();
- // add known file so URL method below can be used
- // (doesn't seem to work for directory?)
- URL totalURL = new URL(url, "plugin.xml");
- URL finalurl = FileLocator.toFileURL(totalURL);
- String finalFile = finalurl.getFile();
- File file = new File(finalFile);
- String finalPath = file.getParent();
- File pluginHomeDir = new File(finalPath);
- FilenameFilter dirFilter = new DirFilenameFilter(directoryRootName);
- File[] allDirs = pluginHomeDir.listFiles(dirFilter);
-
- // assume first in list is newest, then start looking with the
- // second item ... just to avoid "null" case checking
- if (allDirs.length > 0) {
- File currentNewest = allDirs[0];
- for (int i = 1; i < allDirs.length; i++) {
- File current = allDirs[i];
- // NOTE: we go by modified date, not by the actual time stamp in name.
- // This should work for all normal cases, but may not if someone does some
- // "funny" copying, or updating from repository.
- if (current.lastModified() > currentNewest.lastModified()) {
- currentNewest = current;
- }
- }
- previousResultsDirectory = currentNewest;
- }
- notTriedYet = false;
- }
- return previousResultsDirectory;
- }
-
- public static File makeFileFor(String directory, String filename, String testResultsDirectoryPrefix) throws IOException {
- Bundle bundle = Platform.getBundle(JSP_EDITOR_TESTS_PLUGIN_ID);
- URL url = bundle.getEntry("/");
- URL localURL = FileLocator.toFileURL(url);
- String installPath = localURL.getPath();
- String totalDirectory = installPath + directory;
- String totalPath = totalDirectory + "/" + filename;
- URL totalURL = new URL(url, totalPath);
- //URL finalurl = Platform.asLocalURL(totalURL);
- String finalFile = totalURL.getFile();
- File file = new File(finalFile);
- String finalPath = file.getParent();
- File dir = new File(finalPath);
- if (!dir.exists()) {
- // a little safety net, be sure the previous newest directory
- // is initialized, just in case no one else has done so
- if (testResultsDirectoryPrefix != null && testResultsDirectoryPrefix.length() > 0) {
- FileUtil.getPreviousResultsDirectory(testResultsDirectoryPrefix);
- }
- // now its "safe" to make the new one
- dir.mkdirs();
- }
- return file;
- }
-
- /**
- * Just a general utility method
- * @param filename
- * @return String
- */
- public static String getExtension(String filename) {
- String extension = null;
- int dotPostion = filename.lastIndexOf('.');
- if (dotPostion > -1) {
- extension = filename.substring(dotPostion + 1);
- }
- else {
- extension = new String();
- }
- return extension;
- }
-
- /**
- * General purpose utility method to ensure the log
- * directory exists, and returns the name.
- */
- public static String getLogDirectory() {
- if (logSubDirectoryPath == null) {
- String mainDirectory = "/logs";
- File dir = new File(mainDirectory);
- ensureExists(dir);
- String subDirectory = TimestampUtil.timestamp();
- logSubDirectoryPath = mainDirectory + "/" + subDirectory;
- File subdir = new File(logSubDirectoryPath);
- ensureExists(subdir);
- }
- return logSubDirectoryPath;
- }
-
- public static void ensureExists(File dir) {
- if (!dir.exists()) {
- dir.mkdirs();
- }
- }
-
- public static String getPerformanceOutputLogName() {
- String result = null;
- String directoryName = FileUtil.getLogDirectory();
- String extension = ".out";
- String baseName = "sedTests";
- long now = System.currentTimeMillis();
- String nowStr = String.valueOf(now);
- result = directoryName + FileUtil.fFileSeparator + baseName + nowStr + extension;
- return result;
- }
-
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/ProjectUnzipUtility.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/ProjectUnzipUtility.java
deleted file mode 100644
index d820be4b9..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/ProjectUnzipUtility.java
+++ /dev/null
@@ -1,391 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.util;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-import org.eclipse.ui.wizards.datatransfer.FileSystemStructureProvider;
-import org.eclipse.ui.wizards.datatransfer.IImportStructureProvider;
-import org.eclipse.ui.wizards.datatransfer.ImportOperation;
-
-/**
- * Imports zipped files into the test workspace. Deletes all projects in
- * workspace.
- *
- * @author pavery
- */
-public class ProjectUnzipUtility {
- class WorkspaceProgressMonitor implements IProgressMonitor {
- private boolean finished = false;
-
- public void beginTask(String name, int totalWork) {
- // noop
- }
-
- public void done() {
- finished = true;
- }
-
- public boolean isFinished() {
- return finished;
- }
-
- public void internalWorked(double work) {
- // noop
- }
-
- public boolean isCanceled() {
- return finished;
- }
-
- public void setCanceled(boolean value) {
- if (value == true)
- finished = true;
- }
-
- public void setTaskName(String name) {
- // noop
- }
-
- public void subTask(String name) {
- // noop
- }
-
- public void worked(int work) {
- // noop
- }
- }
-
- class MyOverwriteQuery implements IOverwriteQuery {
- public String queryOverwrite(String pathString) {
- return ALL;
- }
- }
-
- public final static String PROJECT_ZIPS_FOLDER = "projecttestfiles";
- private List fCreatedProjects = null;
-
- public ProjectUnzipUtility() {
- // for deletion later
- fCreatedProjects = new ArrayList();
- }
-
- /**
- * @param fileToImport
- * the file you wish to import
- * @param folderPath
- * the container path within the workspace
- */
- public void importFile(File fileToImport, String folderPath) {
- WorkspaceProgressMonitor importProgress = new WorkspaceProgressMonitor();
- try {
- if (fileToImport.exists()) {
- IPath containerPath = new Path(folderPath);
- IImportStructureProvider provider = FileSystemStructureProvider.INSTANCE;
- IOverwriteQuery overwriteImplementor = new MyOverwriteQuery();
- File[] filesToImport = {fileToImport};
- ImportOperation importOp = new ImportOperation(containerPath, null, provider, overwriteImplementor, Arrays.asList(filesToImport));
- importOp.setCreateContainerStructure(false);
- importOp.setOverwriteResources(true);
- importOp.run(importProgress);
- }
- else {
- System.out.println("handle source doesn't exist");
- }
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
- finally {
- importProgress.done();
- }
- }
-
- /**
- * the following is logic from
- * http://www.devshed.com/c/a/Java/Zip-Meets-Java/2/
- */
- // specify buffer size for extraction
- static final int BUFFER = 2048;
-
- public void unzipAndImport(File inFile, String destinationDirectory) {
- try {
- // Specify file to decompress
- // (nsd) redundant?
- // String inFileName = inFile.getAbsolutePath();
- // //"c:/example.zip";
- // File sourceZipFile = new File(inFileName);
- File sourceZipFile = inFile;
-
- // Specify destination where file will be unzipped
- // String destinationDirectory =
- // "d:/eclipsedev/M5_SSE_TESTS_WORKSPACE/"; //"c:/temp/";
- File unzipDestinationDirectory = new File(destinationDirectory);
- // Open Zip file for reading
- ZipFile zipFile = new ZipFile(sourceZipFile, ZipFile.OPEN_READ);
- IProject currentProject = null;
- try {
- // Create an enumeration of the entries in the zip file
- Enumeration zipFileEntries = zipFile.entries();
- String projectFolderName = null;
-
- // Process each entry
- while (zipFileEntries.hasMoreElements()) {
- // grab a zip file entry
- ZipEntry entry = (ZipEntry) zipFileEntries.nextElement();
- String currentEntry = entry.getName();
- // System.out.println("Extracting: " + entry);
- File destFile = new File(unzipDestinationDirectory, currentEntry);
- // grab file's parent directory structure
- File destinationParent = destFile.getParentFile();
- // create the parent directory structure if needed
- destinationParent.mkdirs();
- // extract file if not a directory
- if (!entry.isDirectory()) {
- BufferedInputStream is = new BufferedInputStream(zipFile.getInputStream(entry));
- int currentByte;
- // establish buffer for writing file
- byte data[] = new byte[BUFFER];
- // write the current file to disk
- FileOutputStream fos = new FileOutputStream(destFile);
- BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER);
- try {
- // read and write until last byte is encountered
- while ((currentByte = is.read(data, 0, BUFFER)) != -1) {
- dest.write(data, 0, currentByte);
- }
- }
- finally {
- dest.flush();
- dest.close();
- is.close();
- fos.close();
- }
- if (projectFolderName != null)
- importFile(destFile, projectFolderName);
- }
- else {
- // need handle to the main project folder to create
- // containerPath
- if (projectFolderName == null) {
- projectFolderName = destFile.getName();
- fCreatedProjects.add(projectFolderName);
-
- currentProject = ResourcesPlugin.getWorkspace().getRoot().getProject(projectFolderName);
- }
- }
- }
- }
- finally {
- zipFile.close();
- }
-
- // fixes workspace metadata for the project
- // for clean startup next run
- if (currentProject != null) {
- try {
- Path projectLocation = new Path(Platform.getLocation().toOSString());
- createProject(currentProject, projectLocation, new WorkspaceProgressMonitor());
- }
- catch (CoreException cex) {
- cex.printStackTrace();
- }
- }
- }
- catch (IOException ioe) {
- ioe.printStackTrace();
- }
- }
-
- /**
- *
- */
- public void refreshWorkspace() throws CoreException {
- IWorkspaceRoot wsRoot = ResourcesPlugin.getWorkspace().getRoot();
- IProject[] projects = wsRoot.getProjects();
- for (int i = 0; i < projects.length; i++) {
- projects[i].refreshLocal(IResource.DEPTH_INFINITE, null);
- }
- wsRoot.refreshLocal(IResource.DEPTH_INFINITE, null);
- }
-
- /**
- * Delete projects created (unzipped and imported) by this utility
- *
- * @throws Exception
- */
- public void deleteProjects() throws Exception {
- final IProject[] projects = getCreatedProjects();
- WorkspaceModifyOperation deleteOp = new WorkspaceModifyOperation() {
- protected void execute(IProgressMonitor monitor) throws CoreException {
- for (int i = 0; i < projects.length; i++) {
- projects[i].clearHistory(null);
- projects[i].close(null);
- projects[i].delete(true, true, null);
- }
- refreshWorkspace();
- }
- };
- WorkspaceProgressMonitor progress = new WorkspaceProgressMonitor();
- deleteOp.run(progress);
- // saves the new workspace metadata
- ResourcesPlugin.getWorkspace().save(true, null);
- }
-
- public void deleteProject(String projectName) throws Exception {
- final String name = projectName;
- IWorkspaceRoot wsRoot = ResourcesPlugin.getWorkspace().getRoot();
- final IProject proj = wsRoot.getProject(name);
- WorkspaceModifyOperation deleteOp = new WorkspaceModifyOperation(proj) {
- protected void execute(IProgressMonitor monitor) throws CoreException {
- // IWorkspaceRoot wsRoot =
- // ResourcesPlugin.getWorkspace().getRoot();
- // IProject proj = wsRoot.getProject(name);
- if (proj != null && proj.exists()) {
- proj.clearHistory(null);
- // proj.close(null);
- proj.refreshLocal(IResource.DEPTH_INFINITE, null);
- try {
- proj.delete(true, true, null);
- }
- catch (Exception e) {
- // just try again (not sure why they are not being
- // deleted)
- proj.refreshLocal(IResource.DEPTH_INFINITE, null);
- proj.delete(true, true, null);
- }
- // proj = null;
- }
- refreshWorkspace();
- }
- };
- WorkspaceProgressMonitor progress = new WorkspaceProgressMonitor();
- deleteOp.run(progress);
- // saves the new workspace metadata
- ResourcesPlugin.getWorkspace().save(true, null);
- }
-
- /**
- * @return IProjects that were unzipped and imported into the workspace by
- * this utility
- */
- public IProject[] getCreatedProjects() {
- IWorkspaceRoot wsRoot = ResourcesPlugin.getWorkspace().getRoot();
- String[] projectNames = (String[]) fCreatedProjects.toArray(new String[fCreatedProjects.size()]);
- IProject[] projects = new IProject[projectNames.length];
- for (int i = 0; i < projectNames.length; i++) {
- projects[i] = wsRoot.getProject(projectNames[i]);
- }
- return projects;
- }
-
- public void initJavaProject(String projName) throws CoreException {
- Platform.getJobManager().beginRule(ResourcesPlugin.getWorkspace().getRoot(), new NullProgressMonitor());
- // resynch
- refreshWorkspace();
- // change prereqs to get this functionality back in
- IProject proj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
-
- if (!proj.exists()) {
-
- proj.create(new NullProgressMonitor());
- }
- if (!proj.isOpen()) {
- proj.open(null);
- }
- // need to add java nature, or else project won't "exist()" in the
- // java
- // element sense
- IProjectDescription desc = proj.getDescription();
- List natures = new ArrayList(Arrays.asList(desc.getNatureIds()));
- if (!natures.contains(JavaCore.NATURE_ID))
- natures.add(JavaCore.NATURE_ID);
- desc.setNatureIds((String[]) natures.toArray(new String[0]));
- proj.setDescription(desc, new NullProgressMonitor());
- Platform.getJobManager().endRule(ResourcesPlugin.getWorkspace().getRoot());
- }
-
- private void createProject(IProject project, IPath locationPath, IProgressMonitor monitor) throws CoreException {
- if (monitor == null) {
- monitor = new WorkspaceProgressMonitor();
- }
- monitor.beginTask("creating test project", 10);
- // create the project
- try {
- if (!project.exists()) {
- IProjectDescription desc = project.getWorkspace().newProjectDescription(project.getName());
- if (Platform.getLocation().equals(locationPath)) {
- locationPath = null;
- }
- desc.setLocation(locationPath);
- project.create(desc, monitor);
- monitor = null;
- }
- if (!project.isOpen()) {
- project.open(monitor);
- monitor = null;
- }
- }
- finally {
- if (monitor != null) {
- monitor.done();
- }
- }
- }
-
- public void deleteProject(IProject fProject) throws InvocationTargetException, InterruptedException {
- final IProject proj = fProject;
- WorkspaceModifyOperation deleteOp = new WorkspaceModifyOperation(proj) {
- protected void execute(IProgressMonitor monitor) throws CoreException {
- // IWorkspaceRoot wsRoot =
- // ResourcesPlugin.getWorkspace().getRoot();
- // IProject proj = wsRoot.getProject(name);
- if (proj != null && proj.exists()) {
- proj.clearHistory(null);
- // proj.close(null);
- proj.refreshLocal(IResource.DEPTH_INFINITE, null);
- proj.delete(true, true, null);
- // proj = null;
- }
- refreshWorkspace();
- }
- };
- // WorkspaceProgressMonitor progress = new WorkspaceProgressMonitor();
- deleteOp.run(null);
- // saves the new workspace metadata
- // ResourcesPlugin.getWorkspace().save(true, null);
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/ProjectUtil.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/ProjectUtil.java
deleted file mode 100644
index 4b2b30723..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/ProjectUtil.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package org.eclipse.jst.jsp.ui.tests.util;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-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.core.runtime.Path;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jst.jsp.ui.tests.JSPUITestsPlugin;
-
-/**
- * Some utilities for creating projects, and copying files into the workspace.
- */
-public class ProjectUtil {
-
- public static final String JAVA_NATURE_ID = "org.eclipse.jdt.core.javanature";
-
- /**
- * Add a library entry (like a jar) to the classpath of a project.
- * The jar must be in your poject. You can copy the jar into your workspace using
- * copyBundleEntryIntoWorkspace(String entryname, String fullPath)
- *
- * @param proj assumed it has java nature
- * @param pathToJar project relative, no leading slash
- */
- public static void addLibraryEntry(IProject proj, String pathToJar) {
-
- IPath projLocation = proj.getLocation();
- IPath absJarPath = projLocation.append(pathToJar);
-
- IJavaProject jProj = JavaCore.create(proj);
-
- IClasspathEntry strutsJarEntry = JavaCore.newLibraryEntry(absJarPath, null, null);
- try {
- IClasspathEntry[] currentEntries = jProj.getRawClasspath();
-
- List l = new ArrayList();
- l.addAll(Arrays.asList(currentEntries));
- l.add(strutsJarEntry);
-
- IClasspathEntry[] newEntries = (IClasspathEntry[])l.toArray(new IClasspathEntry[l.size()]);
- jProj.setRawClasspath(newEntries, new NullProgressMonitor());
- }
- catch (JavaModelException e) {
- e.printStackTrace();
- }
- }
-
- /**
- *
- * @param entryname path relative to TEST plugin starting w/ a "/"
- * (eg. "/testfiles/bugnumber/struts-logic.tld")
- * @param fullPath path relative to junit test workpace
- * (eg. "/myruntimeproj/struts-logic.tld")
- * @return
- */
- public static IFile copyBundleEntryIntoWorkspace(String entryname, String fullPath) {
- IFile file = null;
- URL entry = JSPUITestsPlugin.getDefault().getBundle().getEntry(entryname);
- if (entry != null) {
- try {
- byte[] b = new byte[2048];
- InputStream input = entry.openStream();
- ByteArrayOutputStream output = new ByteArrayOutputStream();
- int i = -1;
- while ((i = input.read(b)) > -1) {
- output.write(b, 0, i);
- }
- file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(fullPath));
- if (file != null) {
- file.create(new ByteArrayInputStream(output.toByteArray()), true, new NullProgressMonitor());
- }
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- catch (CoreException e) {
- e.printStackTrace();
- }
- }
- return file;
- }
-
- public static IProject createProject(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;
- }
-}
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/TimestampUtil.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/TimestampUtil.java
deleted file mode 100644
index a856dc990..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/TimestampUtil.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.util;
-
-import java.util.Calendar;
-import java.util.Date;
-
-import com.ibm.icu.text.DateFormat;
-import com.ibm.icu.text.SimpleDateFormat;
-
-/**
- * @author davidw
- *
- * This class provides one timestamp per VM run.
- * (Technically, per class loading.)
- */
-public class TimestampUtil {
-
- private static Date timestamp = null;
- private static DateFormat shortFormat = new SimpleDateFormat("yyyy'-'MM'-'dd");
- // private static DateFormat longFormat = new SimpleDateFormat("yyyy'-'MM'-'dd'-'kk'-'mm'-'ss");
-
- private static String nowShort = null;
-
- public static String timestamp() {
-
- if (TimestampUtil.nowShort == null) {
- TimestampUtil.nowShort = shortFormat.format(ensureTimestamp());
- }
- return TimestampUtil.nowShort;
- }
-
- protected static Date ensureTimestamp() {
- // just calculate 'timestamp' once per class loading,
- // so this 'timestamp' remains the same during
- // entire run.
- if (TimestampUtil.timestamp == null) {
- Calendar calendar = Calendar.getInstance();
- TimestampUtil.timestamp = calendar.getTime();
- }
- return TimestampUtil.timestamp;
- }
-
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/WorkspaceProgressMonitor.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/WorkspaceProgressMonitor.java
deleted file mode 100644
index a3f107ad8..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/util/WorkspaceProgressMonitor.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.util;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-class WorkspaceProgressMonitor implements IProgressMonitor {
- private boolean finished = false;
-
- public void beginTask(String name, int totalWork) {
- }
-
- public void done() {
- finished = true;
- }
-
- public boolean isFinished() {
- return finished;
- }
-
- public void internalWorked(double work) {
- }
-
- public boolean isCanceled() {
- return finished;
- }
-
- public void setCanceled(boolean value) {
- if (value == true)
- finished = true;
- }
-
- public void setTaskName(String name) {
- }
-
- public void subTask(String name) {
- }
-
- public void worked(int work) {
- }
-} \ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/viewer/TestViewerConfigurationJSP.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/viewer/TestViewerConfigurationJSP.java
deleted file mode 100644
index 5fe9a2c80..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/viewer/TestViewerConfigurationJSP.java
+++ /dev/null
@@ -1,246 +0,0 @@
-package org.eclipse.jst.jsp.ui.tests.viewer;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.text.IAutoEditStrategy;
-import org.eclipse.jface.text.IInformationControlCreator;
-import org.eclipse.jface.text.ITextDoubleClickStrategy;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.contentassist.IContentAssistant;
-import org.eclipse.jface.text.formatter.IContentFormatter;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.information.IInformationPresenter;
-import org.eclipse.jface.text.reconciler.IReconciler;
-import org.eclipse.jface.text.source.IAnnotationHover;
-import org.eclipse.jst.jsp.core.text.IJSPPartitions;
-import org.eclipse.jst.jsp.ui.StructuredTextViewerConfigurationJSP;
-import org.eclipse.jst.jsp.ui.tests.Logger;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.html.core.text.IHTMLPartitions;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-
-/**
- * @author pavery
- */
-public class TestViewerConfigurationJSP extends TestCase {
-
- private StructuredTextViewerConfigurationJSP fConfig = null;
- private boolean fDisplayExists = true;
- private StructuredTextViewer fViewer = null;
- private boolean isSetup = false;
-
- public TestViewerConfigurationJSP() {
- super("TestViewerConfigurationJSP");
- }
- protected void setUp() throws Exception {
-
- super.setUp();
- if(!this.isSetup){
- setUpViewerConfiguration();
- this.isSetup = true;
- }
- }
-
- private void setUpViewerConfiguration() {
-
- if (Display.getCurrent() != null) {
-
- Shell shell = null;
- Composite parent = null;
-
- if(PlatformUI.isWorkbenchRunning()) {
- shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- }
- else {
- shell = new Shell(Display.getCurrent());
- }
- parent = new Composite(shell, SWT.NONE);
-
- // dummy viewer
- fViewer = new StructuredTextViewer(parent, null, null, false, SWT.NONE);
- fConfig = new StructuredTextViewerConfigurationJSP();
- }
- else {
- fDisplayExists = false;
- Logger.log(Logger.INFO, "Remember, viewer configuration tests are not run because workbench is not open (normal on build machine)");
- }
- }
-
- /**
- * Not necessary
- */
- public void testGetAnnotationHover() {
-
- // probably no display
- if(!fDisplayExists)
- return;
-
- IAnnotationHover hover = fConfig.getAnnotationHover(fViewer);
- assertNotNull("AnnotationHover is null", hover);
- }
-
- public void testGetAutoEditStrategies() {
-
- // probably no display
- if(!fDisplayExists)
- return;
-
- IAutoEditStrategy[] strategies = fConfig.getAutoEditStrategies(fViewer, IJSPPartitions.JSP_DEFAULT);
- assertNotNull(strategies);
- assertTrue("there are no auto edit strategies", strategies.length > 0);
- }
-
- public void testGetConfiguredContentTypes() {
-
- // probably no display
- if(!fDisplayExists)
- return;
-
- String[] configuredContentTypes = fConfig.getConfiguredContentTypes(fViewer);
- assertNotNull(configuredContentTypes);
- assertTrue("there are no configured content types", configuredContentTypes.length > 1);
- }
-
- /**
- * Not necessary
- */
- public void testGetContentAssistant() {
-
- // probably no display
- if(!fDisplayExists)
- return;
-
- IContentAssistant ca = fConfig.getContentAssistant(fViewer);
- assertNotNull("there is no content assistant", ca);
- }
-
- public void testGetContentFormatter() {
-
- // probably no display
- if(!fDisplayExists)
- return;
-
- IContentFormatter cf = fConfig.getContentFormatter(fViewer);
- assertNotNull("there is no content formatter", cf);
- }
-
- public void testGetDoubleClickStrategy() {
-
- // probably no display
- if(!fDisplayExists)
- return;
-
- String[] contentTypes = fConfig.getConfiguredContentTypes(fViewer);
- for (int i = 0; i < contentTypes.length; i++) {
- ITextDoubleClickStrategy strategy = fConfig.getDoubleClickStrategy(fViewer, contentTypes[i]);
- if(strategy != null) {
- return;
- }
- }
- assertTrue("there are no configured double click strategies", false);
- }
-
- public void testGetHyperlinkDetectors() {
-
- // probably no display
- if(!fDisplayExists)
- return;
-
- IHyperlinkDetector[] detectors = fConfig.getHyperlinkDetectors(fViewer);
- assertNotNull("there are no hyperlink detectors", detectors);
- assertTrue("there are no hyperlink detectors", detectors.length > 1);
- }
-
- public void testGetIndentPrefixes() {
- // probably no display
- if(!fDisplayExists)
- return;
-
- String[] contentTypes = fConfig.getConfiguredContentTypes(fViewer);
- for (int i = 0; i < contentTypes.length; i++) {
- String prefixes[] = fConfig.getIndentPrefixes(fViewer, contentTypes[i]);
- if(prefixes != null) {
- return;
- }
- }
- assertTrue("there are no configured indent prefixes", false);
- }
-
- /**
- * Not necessary
- */
- public void testGetInformationControlCreator() {
- // probably no display
- if(!fDisplayExists)
- return;
-
- IInformationControlCreator infoCreator = fConfig.getInformationControlCreator(fViewer);
- assertNotNull("InformationControlCreator is null", infoCreator);
- }
-
- /**
- * Not necessary
- */
- public void testGetInformationPresenter() {
-
- // probably no display
- if(!fDisplayExists)
- return;
-
- IInformationPresenter presenter = fConfig.getInformationPresenter(fViewer);
- assertNotNull("InformationPresenter is null", presenter);
- }
-
- public void testGetLineStyleProviders() {
- // probably no display
- if(!fDisplayExists)
- return;
-
- String[] contentTypes = fConfig.getConfiguredContentTypes(fViewer);
- for (int i = 0; i < contentTypes.length; i++) {
- LineStyleProvider providers[] = fConfig.getLineStyleProviders(fViewer, contentTypes[i]);
- if(providers != null) {
- return;
- }
- }
- assertTrue("there are no configured line style providers", false);
- }
-
- /**
- * Not necessary
- */
- public void testGetReconciler() {
-
- // probably no display
- if(!fDisplayExists)
- return;
-
- IReconciler r = fConfig.getReconciler(fViewer);
- assertNotNull("Reconciler is null", r);
- }
-
- public void testGetTextHover() {
-
- // probably no display
- if(!fDisplayExists)
- return;
-
- String[] hoverPartitions = new String[]{IHTMLPartitions.HTML_DEFAULT,
- IHTMLPartitions.SCRIPT,
- IJSPPartitions.JSP_DEFAULT,
- IJSPPartitions.JSP_DIRECTIVE,
- IJSPPartitions.JSP_CONTENT_JAVA,
- IXMLPartitions.XML_DEFAULT};
-
- for (int i = 0; i < hoverPartitions.length; i++) {
- ITextHover hover = fConfig.getTextHover(fViewer, hoverPartitions[i], SWT.NONE);
- assertNotNull("hover was null for partition: " + hoverPartitions[i], hover);
- }
- }
-}
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/viewer/ViewerTestJSP.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/viewer/ViewerTestJSP.java
deleted file mode 100644
index a44573667..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/viewer/ViewerTestJSP.java
+++ /dev/null
@@ -1,448 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.viewer;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.jst.jsp.ui.StructuredTextViewerConfigurationJSP;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.w3c.dom.Attr;
-
-public class ViewerTestJSP extends ViewPart {
- private final String SSE_EDITOR_FONT = "org.eclipse.wst.sse.ui.textfont";
- private final String DEFAULT_VIEWER_CONTENTS = "<%@ page contentType=\"text/html; charset=ISO-8859-1\" %>\n";
-
- StructuredTextViewer fSourceViewer = null;
- private StructuredTextViewerConfiguration fConfig = null;
- private IContentOutlinePage fContentOutlinePage = null;
- private ISelectionChangedListener fHighlightRangeListener = null;
-
- /**
- * Sets the viewer's highlighting text range to the text range indicated
- * by the selected Nodes.
- */
- protected class NodeRangeSelectionListener implements ISelectionChangedListener {
- public void selectionChanged(SelectionChangedEvent event) {
- if (!event.getSelection().isEmpty() && event.getSelection() instanceof IStructuredSelection) {
- IStructuredSelection selection = (IStructuredSelection) event.getSelection();
- IndexedRegion startNode = (IndexedRegion) selection.getFirstElement();
- IndexedRegion endNode = (IndexedRegion) selection.toArray()[selection.size() - 1];
-
- if (startNode instanceof Attr)
- startNode = (IndexedRegion) ((Attr) startNode).getOwnerElement();
- if (endNode instanceof Attr)
- endNode = (IndexedRegion) ((Attr) endNode).getOwnerElement();
-
- int start = startNode.getStartOffset();
- int end = endNode.getEndOffset();
-
- fSourceViewer.resetVisibleRegion();
- fSourceViewer.setVisibleRegion(start, end - start);
- fSourceViewer.setSelectedRange(start, 0);
- }
- else {
- fSourceViewer.resetVisibleRegion();
- }
- }
- }
-
- protected class NumberInputDialog extends Dialog {
- public NumberInputDialog(Shell shell) {
- super(shell);
- }
-
- public Text start;
- int startValue;
- public Text length;
- int lengthValue;
-
- protected Control createDialogArea(Composite parent) {
- Composite composite = (Composite) super.createDialogArea(parent);
- Composite container = new Composite(composite, SWT.NULL);
- container.setLayoutData(new GridData(GridData.FILL_BOTH));
- container.setLayout(new GridLayout(2, true));
- setShellStyle(getShell().getStyle() | SWT.RESIZE);
-
- Label label = new Label(container, SWT.NULL);
- label.setText("Start");
- label.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- label = new Label(container, SWT.NULL);
- label.setText("Length");
- label.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- start = new Text(container, SWT.BORDER);
- startValue = fSourceViewer.getVisibleRegion().getOffset();
- start.setText("" + startValue);
- start.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- length = new Text(container, SWT.BORDER);
- lengthValue = fSourceViewer.getVisibleRegion().getLength();
- length.setText("" + lengthValue);
- length.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- // start.addModifyListener(new ModifyListener() {
- // public void modifyText(ModifyEvent e) {
- // if (e.widget == start) {
- // try {
- // startValue = Integer.decode(start.getText()).intValue();
- // }
- // catch (NumberFormatException e2) {
- // startValue = 0;
- // }
- // }
- // }
- // });
- // length.addModifyListener(new ModifyListener() {
- // public void modifyText(ModifyEvent e) {
- // if (e.widget == length) {
- // try {
- // lengthValue = Integer.decode(length.getText()).intValue();
- // }
- // catch (NumberFormatException e2) {
- // lengthValue = 0;
- // }
- // }
- // }
- // });
-
- return composite;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.dialogs.Dialog#okPressed()
- */
- protected void okPressed() {
- try {
- startValue = Integer.decode(start.getText()).intValue();
- }
- catch (NumberFormatException e2) {
- startValue = 0;
- }
- try {
- lengthValue = Integer.decode(length.getText()).intValue();
- }
- catch (NumberFormatException e2) {
- lengthValue = 0;
- }
- super.okPressed();
- }
- }
-
- protected void addActions(IContributionManager mgr) {
- if (mgr != null) {
- mgr.add(new Action() {
- public String getText() {
- return getToolTipText();
- }
-
- public String getToolTipText() {
- return "New JSP";
- }
-
- public void run() {
- super.run();
- BusyIndicator.showWhile(getSite().getShell().getDisplay(), new Runnable() {
- public void run() {
- setupViewerForNew();
- fSourceViewer.setEditable(true);
- }
- });
- }
- });
- mgr.add(new Separator());
- mgr.add(new Action() {
- public String getText() {
- return getToolTipText();
- }
-
- public String getToolTipText() {
- return "Change Visibility";
- }
-
- public void run() {
- super.run();
- NumberInputDialog dlg = new NumberInputDialog(fSourceViewer.getControl().getShell());
- int proceed = dlg.open();
- if (proceed == Window.CANCEL)
- return;
- fSourceViewer.resetVisibleRegion();
- fSourceViewer.setVisibleRegion(dlg.startValue, dlg.lengthValue);
- }
- });
- mgr.add(new Action() {
- public String getText() {
- return getToolTipText();
- }
-
- public String getToolTipText() {
- return "Show All";
- }
-
- public void run() {
- super.run();
- fSourceViewer.resetVisibleRegion();
- }
- });
- mgr.add(new Separator());
- // no longer able to set input to NULL
- // mgr.add(new Action() {
- // public String getText() {
- // return getToolTipText();
- // }
- //
- // public String getToolTipText() {
- // return "Set Input to NULL";
- // }
- // public void run() {
- // super.run();
- // viewer.setInput(null);
- // }
- // });
- mgr.add(new Action() {
- public String getText() {
- return getToolTipText();
- }
-
- public String getToolTipText() {
- return "Take Input from Active Editor";
- }
-
- public void run() {
- super.run();
- ITextEditor textEditor = getActiveEditor();
- if (textEditor != null) {
- setupViewerForEditor(textEditor);
- fSourceViewer.setEditable(true);
- }
- }
- });
- mgr.add(new Action() {
- public String getText() {
- return getToolTipText();
- }
-
- public String getToolTipText() {
- return "Take Input and Follow Selection";
- }
-
- public void run() {
- super.run();
- followSelection();
- fSourceViewer.setEditable(true);
- }
- });
- mgr.add(new Action() {
- public String getText() {
- return getToolTipText();
- }
-
- public String getToolTipText() {
- return "Take Input and Follow Selection As ReadOnly";
- }
-
- public void run() {
- super.run();
- followSelection();
- fSourceViewer.setEditable(false);
- }
- });
- mgr.add(new Action() {
- public String getText() {
- return getToolTipText();
- }
-
- public String getToolTipText() {
- return "Stop Following Selection";
- }
-
- public void run() {
- super.run();
- stopFollowSelection();
- }
- });
- }
- }
-
- /**
- * @see org.eclipse.ui.IWorkbenchPart#createPartControl(Composite)
- */
- public void createPartControl(Composite parent) {
- IContributionManager mgr = getViewSite().getActionBars().getMenuManager();
- addActions(mgr);
-
- // create source viewer & its content type-specific viewer
- // configuration
- fSourceViewer = new StructuredTextViewer(parent, null, null, false, SWT.NONE);
- fConfig = new StructuredTextViewerConfigurationJSP();
-
- // set up the viewer with a document & viewer config
- setupViewerForNew();
-
- setupViewerPreferences();
- }
-
- /**
- * @see org.eclipse.ui.IWorkbenchPart#dispose()
- */
- public void dispose() {
- stopFollowSelection();
- fSourceViewer.unconfigure();
- }
-
- /**
- * @see org.eclipse.ui.IWorkbenchPart#setFocus()
- */
- public void setFocus() {
- if (fSourceViewer.getControl() != null && !fSourceViewer.getControl().isDisposed())
- fSourceViewer.getControl().setFocus();
- }
-
- /**
- * @see org.eclipse.ui.IViewPart#init(IViewSite, IMemento)
- */
- public void init(IViewSite site, IMemento memento) throws PartInitException {
- super.init(site, memento);
- }
-
- /**
- * Set up source viewer with any additional preferences it should have Ex:
- * font, tab width
- */
- private void setupViewerPreferences() {
- fSourceViewer.getTextWidget().setFont(JFaceResources.getFont(SSE_EDITOR_FONT));
- }
-
- /**
- * Set up source viewer with a new document & configure it
- */
- private void setupViewerForNew() {
- stopFollowSelection(); // if was following selection, stop
-
- IModelManager modelManager = StructuredModelManager.getModelManager();
-
- IDocument doc = modelManager.createStructuredDocumentFor(ContentTypeIdForJSP.ContentTypeID_JSP);
- doc.set(DEFAULT_VIEWER_CONTENTS);
-
- fSourceViewer.setDocument(doc);
- // need to reconfigure after set document just so highlighter works
- fSourceViewer.configure(fConfig);
- }
-
- /**
- * Returns the current active text editor if possible
- *
- * @return ITextEditor
- */
- private ITextEditor getActiveEditor() {
- ITextEditor editor = null;
- IEditorPart editorPart = getSite().getWorkbenchWindow().getActivePage().getActiveEditor();
- if (editorPart instanceof ITextEditor)
- editor = (ITextEditor) editorPart;
- if (editor == null && editorPart != null)
- editor = (ITextEditor) editorPart.getAdapter(ITextEditor.class);
- return editor;
- }
-
- /**
- * Sets up the viewer with the same document/input as the given editor
- *
- * @param ITextEditor
- * editor - the editor to use *cannot to be null*
- */
- private void setupViewerForEditor(ITextEditor editor) {
- stopFollowSelection(); // if was following selection, stop
- IDocument doc = editor.getDocumentProvider().getDocument(editor.getEditorInput());
- fSourceViewer.setDocument(doc);
-
- // need to reconfigure after set document just so highlighter works
- fSourceViewer.configure(new StructuredTextViewerConfigurationJSP());
- }
-
- /**
- * Hooks up the viewer to follow the selection made in the active editor
- */
- private void followSelection() {
- ITextEditor editor = getActiveEditor();
- if (editor != null) {
- setupViewerForEditor(editor);
- if (fHighlightRangeListener == null)
- fHighlightRangeListener = new NodeRangeSelectionListener();
-
- fContentOutlinePage = ((IContentOutlinePage) editor.getAdapter(IContentOutlinePage.class));
- if (fContentOutlinePage != null) {
- fContentOutlinePage.addSelectionChangedListener(fHighlightRangeListener);
-
- if (!fContentOutlinePage.getSelection().isEmpty() && fContentOutlinePage.getSelection() instanceof IStructuredSelection) {
- fSourceViewer.resetVisibleRegion();
-
- Object[] nodes = ((IStructuredSelection) fContentOutlinePage.getSelection()).toArray();
- IndexedRegion startNode = (IndexedRegion) nodes[0];
- IndexedRegion endNode = (IndexedRegion) nodes[nodes.length - 1];
-
- if (startNode instanceof Attr)
- startNode = (IndexedRegion) ((Attr) startNode).getOwnerElement();
- if (endNode instanceof Attr)
- endNode = (IndexedRegion) ((Attr) endNode).getOwnerElement();
-
- int start = startNode.getStartOffset();
- int end = endNode.getEndOffset();
-
- fSourceViewer.setVisibleRegion(start, end - start);
- fSourceViewer.setSelectedRange(start, 0);
- }
- }
- }
- }
-
- /**
- * Cease following the selection made in the editor
- */
- private void stopFollowSelection() {
- if (fContentOutlinePage != null) {
- fContentOutlinePage.removeSelectionChangedListener(fHighlightRangeListener);
- fSourceViewer.resetVisibleRegion();
- fContentOutlinePage = null;
- }
- }
-
-} \ No newline at end of file

Back to the top