| //------------------------------------------------------------------------------ |
| // Copyright (c) 2005, 2006 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 implementation |
| //------------------------------------------------------------------------------ |
| package org.eclipse.epf.library.tests.variability; |
| |
| import org.eclipse.epf.library.configuration.ConfigurationHelper; |
| import org.eclipse.epf.library.tests.LibraryTestHelper; |
| import org.eclipse.epf.library.util.LibraryUtil; |
| import org.eclipse.epf.uma.ContentPackage; |
| import org.eclipse.epf.uma.MethodConfiguration; |
| import org.eclipse.epf.uma.MethodPlugin; |
| import org.eclipse.epf.uma.SupportingMaterial; |
| import org.eclipse.epf.uma.Task; |
| |
| /** |
| * test case for copyright text realization |
| * |
| * When a contributing element has a copyright, |
| * it should be appended to the copyright of the parent element on the final published page. |
| |
| Also, when an extending element has a copyright, |
| the published page for the extending element should |
| have the parent element's copyright followed by the extending elements copyright. |
| |
| For replaces, the replacing copyright should be present. |
| |
| * @author Jinhua Xi |
| * @since 1.0 |
| * |
| */ |
| public class CopyrightTest extends VariablityBaseTestCase { |
| |
| private static final String copyright_text_1 = "================ This is copyright text 1 ==================="; |
| private static final String copyright_text_2 = "================ This is copyright text 2 ==================="; |
| |
| public CopyrightTest(String name) { |
| super(name); |
| } |
| |
| public void testCopyright() { |
| |
| MethodPlugin plugin1 = LibraryTestHelper.createMethodPlugin("plugin 1"); |
| ContentPackage pkg1 = LibraryTestHelper.createContentPackage(plugin1, "p1"); |
| SupportingMaterial copyright_1 = LibraryTestHelper.createSupportingMaterial(pkg1, "copyright 1"); |
| copyright_1.getPresentation().setMainDescription(copyright_text_1); |
| plugin1.setCopyrightStatement(copyright_1); |
| |
| MethodPlugin plugin2 = LibraryTestHelper.createMethodPlugin("plugin 2"); |
| ContentPackage pkg2 = LibraryTestHelper.createContentPackage(plugin2, "p2"); |
| SupportingMaterial copyright_2 = LibraryTestHelper.createSupportingMaterial(pkg2, "copyright 2"); |
| copyright_2.getPresentation().setMainDescription(copyright_text_2); |
| plugin2.setCopyrightStatement(copyright_2); |
| plugin2.getBases().add(plugin1); |
| |
| MethodConfiguration config = LibraryTestHelper.createConfiguration("config 1"); |
| config.getMethodPluginSelection().add(plugin1); |
| config.getMethodPackageSelection().add(pkg1); |
| config.getMethodPluginSelection().add(plugin2); |
| config.getMethodPackageSelection().add(pkg2); |
| LibraryUtil.validateMethodConfiguration(config); |
| |
| Task t1 = LibraryTestHelper.createTask(pkg1, "t1"); |
| Task t2 = LibraryTestHelper.createTask(pkg2, "t2"); |
| |
| String text = ConfigurationHelper.getCopyrightText(t1, config); |
| int index1 = text.indexOf(copyright_text_1); |
| assertTrue(index1>=0); |
| |
| text = ConfigurationHelper.getCopyrightText(t2, config); |
| int index2 = text.indexOf(copyright_text_2); |
| assertTrue(index2>=0); |
| |
| } |
| |
| public void testCopyright_with_contributors() { |
| MethodPlugin plugin1 = LibraryTestHelper.createMethodPlugin("plugin 1"); |
| ContentPackage pkg1 = LibraryTestHelper.createContentPackage(plugin1, "p1"); |
| SupportingMaterial copyright_1 = LibraryTestHelper.createSupportingMaterial(pkg1, "copyright 1"); |
| copyright_1.getPresentation().setMainDescription(copyright_text_1); |
| plugin1.setCopyrightStatement(copyright_1); |
| |
| MethodPlugin plugin2 = LibraryTestHelper.createMethodPlugin("plugin 2"); |
| ContentPackage pkg2 = LibraryTestHelper.createContentPackage(plugin2, "p2"); |
| SupportingMaterial copyright_2 = LibraryTestHelper.createSupportingMaterial(pkg2, "copyright 2"); |
| copyright_2.getPresentation().setMainDescription(copyright_text_2); |
| plugin2.setCopyrightStatement(copyright_2); |
| plugin2.getBases().add(plugin1); |
| |
| MethodConfiguration config = LibraryTestHelper.createConfiguration("config 1"); |
| config.getMethodPluginSelection().add(plugin1); |
| config.getMethodPackageSelection().add(pkg1); |
| config.getMethodPluginSelection().add(plugin2); |
| config.getMethodPackageSelection().add(pkg2); |
| LibraryUtil.validateMethodConfiguration(config); |
| |
| Task t1 = LibraryTestHelper.createTask(pkg1, "t1"); |
| Task t2 = LibraryTestHelper.createTask(pkg2, "t2"); |
| Task t3 = LibraryTestHelper.createTask(pkg2, "t3"); |
| |
| LibraryTestHelper.setContributes(t2, t1); |
| LibraryTestHelper.setContributes(t3, t1); |
| |
| String text = ConfigurationHelper.getCopyrightText(t1, config); |
| int index1 = text.indexOf(copyright_text_1); |
| int index2 = text.indexOf(copyright_text_2); |
| int index3 = text.indexOf(copyright_text_2, index2 + copyright_text_2.length()); |
| assertTrue(index1>=0); |
| assertTrue(index2>=0); |
| assertTrue(index3<0); // t2 and t3 has the same copyright, should only show once |
| |
| } |
| |
| public void testCopyright_with_replacer() { |
| MethodPlugin plugin1 = LibraryTestHelper.createMethodPlugin("plugin 1"); |
| ContentPackage pkg1 = LibraryTestHelper.createContentPackage(plugin1, "p1"); |
| SupportingMaterial copyright_1 = LibraryTestHelper.createSupportingMaterial(pkg1, "copyright 1"); |
| copyright_1.getPresentation().setMainDescription(copyright_text_1); |
| plugin1.setCopyrightStatement(copyright_1); |
| |
| MethodPlugin plugin2 = LibraryTestHelper.createMethodPlugin("plugin 2"); |
| ContentPackage pkg2 = LibraryTestHelper.createContentPackage(plugin2, "p2"); |
| SupportingMaterial copyright_2 = LibraryTestHelper.createSupportingMaterial(pkg2, "copyright 2"); |
| copyright_2.getPresentation().setMainDescription(copyright_text_2); |
| plugin2.setCopyrightStatement(copyright_2); |
| plugin2.getBases().add(plugin1); |
| |
| MethodConfiguration config = LibraryTestHelper.createConfiguration("config 1"); |
| config.getMethodPluginSelection().add(plugin1); |
| config.getMethodPackageSelection().add(pkg1); |
| config.getMethodPluginSelection().add(plugin2); |
| config.getMethodPackageSelection().add(pkg2); |
| LibraryUtil.validateMethodConfiguration(config); |
| |
| Task t1 = LibraryTestHelper.createTask(pkg1, "t1"); |
| Task t2 = LibraryTestHelper.createTask(pkg2, "t2"); |
| |
| LibraryTestHelper.setReplaces(t2, t1); |
| |
| String text = ConfigurationHelper.getCopyrightText(t2, config); |
| int index1 = text.indexOf(copyright_text_1); |
| int index2 = text.indexOf(copyright_text_2); |
| assertTrue(index1 < 0); |
| assertTrue(index2 >= 0); |
| } |
| |
| public void testCopyright_with_extenders() { |
| MethodPlugin plugin1 = LibraryTestHelper.createMethodPlugin("plugin 1"); |
| ContentPackage pkg1 = LibraryTestHelper.createContentPackage(plugin1, "p1"); |
| SupportingMaterial copyright_1 = LibraryTestHelper.createSupportingMaterial(pkg1, "copyright 1"); |
| copyright_1.getPresentation().setMainDescription(copyright_text_1); |
| plugin1.setCopyrightStatement(copyright_1); |
| |
| MethodPlugin plugin2 = LibraryTestHelper.createMethodPlugin("plugin 2"); |
| ContentPackage pkg2 = LibraryTestHelper.createContentPackage(plugin2, "p2"); |
| SupportingMaterial copyright_2 = LibraryTestHelper.createSupportingMaterial(pkg2, "copyright 2"); |
| copyright_2.getPresentation().setMainDescription(copyright_text_2); |
| plugin2.setCopyrightStatement(copyright_2); |
| plugin2.getBases().add(plugin1); |
| |
| MethodConfiguration config = LibraryTestHelper.createConfiguration("config 1"); |
| config.getMethodPluginSelection().add(plugin1); |
| config.getMethodPackageSelection().add(pkg1); |
| config.getMethodPluginSelection().add(plugin2); |
| config.getMethodPackageSelection().add(pkg2); |
| LibraryUtil.validateMethodConfiguration(config); |
| |
| Task t1 = LibraryTestHelper.createTask(pkg1, "t1"); |
| Task t2 = LibraryTestHelper.createTask(pkg2, "t2"); |
| Task t3 = LibraryTestHelper.createTask(pkg2, "t3"); |
| |
| LibraryTestHelper.setExtends(t2, t1); |
| LibraryTestHelper.setExtends(t3, t2); |
| |
| int index1, index2, index3; |
| |
| String text = ConfigurationHelper.getCopyrightText(t1, config); |
| index1 = text.indexOf(copyright_text_1); |
| assertTrue(index1>=0); |
| |
| text = ConfigurationHelper.getCopyrightText(t2, config); |
| index1 = text.indexOf(copyright_text_1); |
| index2 = text.indexOf(copyright_text_2); |
| assertTrue(index1 >= 0); |
| assertTrue(index2 > index1); // base copyright comes first |
| |
| String text3 = ConfigurationHelper.getCopyrightText(t3, config); |
| assertEquals(text, text3); // t2 and t3 has the same copyright, should only show once, so same as above |
| } |
| |
| /** |
| * R00383855 - Same copyright message gets realized twice |
| * Steps to reproduce: |
| 0. Create a config include plugin X and Y. |
| 1. Assign copyright A to plugin X. |
| 2. Assign copyright A to plugin Y. |
| 3. Have a task M in plugin Y to contribute task N in plugin X. |
| 4. preview task N and you will be the copyright displaed twice at the bottom. |
| * |
| */ |
| |
| public void test_R00383855() { |
| |
| // same as the last part of testCopyright_with_contributors() |
| testCopyright_with_contributors(); |
| } |
| } |