/******************************************************************************* * Copyright (c) 2008 Olivier Moises * * 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: * Olivier Moises- initial API and implementation *******************************************************************************/ package org.eclipse.wazaabi.engine.swt.tests.widgets; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Button; import org.eclipse.wazaabi.engine.swt.tests.SWTUtils; import org.eclipse.wazaabi.engine.swt.tests.TestUtils; import org.eclipse.wazaabi.mm.core.styles.ImageRule; import org.eclipse.wazaabi.mm.core.styles.StringRule; import org.eclipse.wazaabi.mm.core.styles.StyleRule; import org.eclipse.wazaabi.mm.core.widgets.Widget; import org.junit.Assert; import org.junit.Test; public abstract class AbstractTestImageRuleImageButton extends AbstractTestImageRuleImage { @Override public void before() { super.before(); } @Override public void after() { super.after(); } /* * (non-Javadoc) * @see org.eclipse.wazaabi.engine.swt.commons.tests.widgets.AbstractTestStyleRule#ModelMoveRule(boolean, org.eclipse.wazaabi.mm.core.widgets.Widget, org.eclipse.wazaabi.mm.core.styles.StyleRule, org.eclipse.wazaabi.mm.core.styles.StyleRule, java.lang.String) * The following methods override those from AbtractTestStyleRules in order to be able to test that images are well disposed. */ @Override protected org.eclipse.swt.widgets.Widget ModelMoveRule(boolean before, Widget widget, StyleRule styleRule1, StyleRule styleRule2, String propertyName) { if(!before) viewer.setContents(widget); Image firstSwtImage=null; widget.getStyleRules().add(styleRule1); if(!before){ Button swtButton = (Button) SWTUtils.getWidget(viewer, widget); firstSwtImage = swtButton.getImage(); Assert.assertNotNull(firstSwtImage); Assert.assertFalse(firstSwtImage.isDisposed()); } widget.getStyleRules().add(styleRule2); widget = TestUtils.switchFirstAndSecondRule(widget, propertyName); if (!before) { Assert.assertTrue(firstSwtImage.isDisposed()); } if(before) viewer.setContents(widget); return SWTUtils.getWidget(viewer,widget); } @Override protected org.eclipse.swt.widgets.Widget ModelRemoveRuleByRemove(boolean before, Widget widget, StyleRule styleRule1, StyleRule styleRule2, String propertyName){ if(!before) viewer.setContents(widget); Image firstSwtImage=null; widget.getStyleRules().add(styleRule1); if(!before){ Button swtButton = (Button) SWTUtils.getWidget(viewer, widget); firstSwtImage = swtButton.getImage(); Assert.assertNotNull(firstSwtImage); Assert.assertFalse(firstSwtImage.isDisposed()); } widget.getStyleRules().add(styleRule2); widget = TestUtils.removeFirstRuleByRemove(widget,propertyName); if (!before) { Assert.assertTrue(firstSwtImage.isDisposed()); } if(before) viewer.setContents(widget); return SWTUtils.getWidget(viewer, widget); } @Override protected org.eclipse.swt.widgets.Widget ModelRemoveRuleByRename(boolean before, Widget widget, StyleRule styleRule1, StyleRule styleRule2, String propertyName){ if(!before) viewer.setContents(widget); Image firstSwtImage=null; widget.getStyleRules().add(styleRule1); if(!before){ Button swtButton = (Button) SWTUtils.getWidget(viewer, widget); firstSwtImage = swtButton.getImage(); Assert.assertNotNull(firstSwtImage); Assert.assertFalse(firstSwtImage.isDisposed()); } widget.getStyleRules().add(styleRule2); widget = TestUtils.removeFirstRuleByRename(widget,propertyName); if (!before) { Assert.assertTrue(firstSwtImage.isDisposed()); } if(before) viewer.setContents(widget); return SWTUtils.getWidget(viewer, widget); } protected org.eclipse.swt.widgets.Widget ModelModifyRule(boolean before, Widget widget){ if(!before) viewer.setContents(widget); Image firstSwtImage=null; widget.getStyleRules().add(imageRuleImage); if(!before){ Button swtButton = (Button) SWTUtils.getWidget(viewer, widget); firstSwtImage = swtButton.getImage(); Assert.assertNotNull(firstSwtImage); Assert.assertFalse(firstSwtImage.isDisposed()); } StringRule str =(ImageRule) widget.getStyleRules().get(0); str.setValue(URI2); if (!before) { Assert.assertTrue(firstSwtImage.isDisposed()); } if(before) viewer.setContents(widget); return SWTUtils.getWidget(viewer, widget); } @Test abstract public void testModelSetImageBeforeViewerSetContentsEqualsSWTImage(); @Test abstract public void testModelSetImageAfterViewerSetContentsEqualsSWTImage(); @Test abstract public void testModelSetMultipleImageBeforeViewerSetContentsEqualsSWTImage(); @Test abstract public void testModelSetMultipleImageAfterViewerSetContentsEqualsSWTImage(); @Test abstract public void testModelMoveImageBeforeViewerSetContentsEqualsSWTImage(); @Test abstract public void testModelMoveImageAfterViewerSetContentsEqualsSWTImage(); @Test abstract public void testModelRemoveImageByRemoveBeforeViewerSetContentsEqualsSWTImage(); @Test abstract public void testModelRemoveImageByRemoveAfterViewerSetContentsEqualsSWTImage(); @Test abstract public void testModelRemoveImageByRenameBeforeViewerSetContentsEqualsSWTImage(); @Test abstract public void testModelRemoveImageByRenameAfterViewerSetContentsEqualsSWTImage(); @Test abstract public void testModelModifyImageBeforeSetContentsEqualsSWTImage(); @Test abstract public void testModelModifyImageAfterSetContentsEqualsSWTImage(); }