package net.codjo.broadcast.gui.wizard;
import net.codjo.broadcast.gui.BroadcastGuiContext;
import net.codjo.workflow.gui.wizard.WizardUtil;
import java.util.Map;
import org.uispec4j.Panel;
import org.uispec4j.TextBox;
import org.uispec4j.UISpecTestCase;
public class BroadcastWizardSummaryGuiTest extends UISpecTestCase {
private BroadcastGuiContext broadcastGuiContext = new BroadcastGuiContext();
public void test_displayStart() throws Exception {
final Map displayStart = WizardUtil.createBroadcastState("to_export.txt", "2006-01-30");
final BroadcastWizardSummaryGui summaryPanel =
new BroadcastWizardSummaryGui(broadcastGuiContext);
summaryPanel.display(displayStart);
final Panel mainPanel = new Panel(summaryPanel.getGui());
final TextBox file = mainPanel.getInputTextBox("file");
assertTrue(file.textEquals("to_export.txt"));
final TextBox date = mainPanel.getInputTextBox("date");
assertTrue(date.textEquals("30/01/2006"));
final TextBox startTime = mainPanel.getInputTextBox("startTime");
final TextBox extraArguments = mainPanel.getInputTextBox("extraArguments");
assertTrue(extraArguments.textEquals(""));
assertVisibleEnabledButNotEditable(file, date, startTime);
assertFalse(extraArguments.isVisible().isTrue());
}
public void test_displayStartWithExtraArguments() throws Exception {
final Map state = WizardUtil.createBroadcastState("to_export.txt", "2006-01-30");
state.put("myExtraArgument1", "myValue1");
state.put("myExtraArgument2", "myValue2");
state.put("anotherExtraArgument", "anotherValue");
state.put("nullExtraArgument", null);
state.put("nullStringExtraArgument", "null");
final BroadcastWizardSummaryGui summaryPanel =
new BroadcastWizardSummaryGui(broadcastGuiContext);
summaryPanel.display(state);
final Panel mainPanel = new Panel(summaryPanel.getGui());
final TextBox file = mainPanel.getInputTextBox("file");
assertTrue(file.textEquals("to_export.txt"));
final TextBox date = mainPanel.getInputTextBox("date");
assertTrue(date.textEquals("30/01/2006"));
final TextBox startTime = mainPanel.getInputTextBox("startTime");
final TextBox extraArguments = mainPanel.getInputTextBox("extraArguments");
assertTrue(extraArguments.textEquals(
"anotherExtraArgument=anotherValue, myExtraArgument1=myValue1, myExtraArgument2=myValue2"));
assertVisibleEnabledButNotEditable(file, date, startTime, extraArguments);
state.remove("myExtraArgument1");
state.remove("myExtraArgument2");
state.remove("anotherExtraArgument");
state.remove("nullExtraArgument");
state.remove("nullStringExtraArgument");
summaryPanel.display(state);
assertTrue(file.textEquals("to_export.txt"));
assertTrue(date.textEquals("30/01/2006"));
assertTrue(extraArguments.textEquals(""));
assertTrue(mainPanel.getInputTextBox("file").isVisible().isTrue());
assertTrue(mainPanel.getInputTextBox("date").isVisible().isTrue());
assertFalse(mainPanel.getInputTextBox("extraArguments").isVisible().isTrue());
assertVisibleEnabledButNotEditable(file, date, startTime);
assertFalse(extraArguments.isVisible().isTrue());
}
private static void assertVisibleEnabledButNotEditable(TextBox... textBoxes) {
for (TextBox textBox : textBoxes) {
assertTrue(textBox.isVisible().isTrue());
assertTrue(textBox.isEnabled().isTrue());
assertFalse(textBox.isEditable().isTrue());
}
}
}