/******************************************************************************* * 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.widgets.Button; import org.eclipse.wazaabi.engine.swt.tests.SWTUtils; import org.eclipse.wazaabi.mm.core.styles.CoreStylesFactory; import org.eclipse.wazaabi.mm.core.styles.StringRule; import org.eclipse.wazaabi.mm.core.widgets.CoreWidgetsFactory; import org.eclipse.wazaabi.mm.core.widgets.PushButton; import org.junit.Assert; import org.junit.Test; /** * on teste le texte affiché sur par un bouton en 'settant' la property dans le modèle * puis en vérifiant l'affichage par introspection du SWT Button * @author greg * */ public class TestPushButton extends AbstractTestWidget { private static final String TEXT = "Hello World"; //$NON-NLS-1$ private PushButton pushButton; @Override public void before() { super.before(); // create the PushButton pushButton = CoreWidgetsFactory.eINSTANCE.createPushButton(); } @Override public void after() { mainShell.open(); super.after(); } /** * la mise à jour avant le rendu (setContents() ) par le viewer * on vérifie que le viewer prenne bien en compte les données d'initialisation * @throws Exception */ @Test public void testModelButtonTextSetBeforeViewerSetContentsEqualsSWTButtonText() { // set the PushButton's text StringRule textRule = CoreStylesFactory.eINSTANCE.createStringRule(); textRule.setPropertyName("text"); //$NON-NLS-1$ textRule.setValue(TEXT); pushButton.getStyleRules().add(textRule); // render the content viewer.setContents(pushButton); Button swtButton = (Button) SWTUtils.getWidget(viewer, pushButton); Assert.assertEquals(TEXT, swtButton.getText()); } /** * la mise à jour pendant le rendu par le viewer. * on vérifie que le viewer détecte le changement et modifie bien le SWT affiché. * @throws Exception */ @Test public void testModelButtonTextSetAfterViewerSetContentsEqualsSWTButtonText() { // Set the content viewer.setContents(pushButton); Button swtButton = (Button) SWTUtils.getWidget(viewer, pushButton); // set the PushButton's text StringRule textRule = CoreStylesFactory.eINSTANCE.createStringRule(); textRule.setPropertyName("text"); //$NON-NLS-1$ textRule.setValue(TEXT); pushButton.getStyleRules().add(textRule); Assert.assertEquals(TEXT, swtButton.getText()); } }