001: package org.uispec4j;
002:
003: import junit.framework.Assert;
004: import org.uispec4j.assertion.Assertion;
005: import org.uispec4j.utils.KeyUtils;
006:
007: import javax.swing.*;
008: import java.awt.*;
009:
010: class TextBoxHandlerForLabel implements TextBox.Handler {
011: private JLabel jLabel;
012:
013: public TextBoxHandlerForLabel(JLabel label) {
014: this .jLabel = label;
015: }
016:
017: public Component getAwtComponent() {
018: return jLabel;
019: }
020:
021: public void setText(String text) {
022: throwNotEditableError();
023: }
024:
025: public void insertText(String text, int position) {
026: throwNotEditableError();
027: }
028:
029: public String getText() {
030: return jLabel.getText();
031: }
032:
033: public Assertion textIsEmpty() {
034: return new Assertion() {
035: public void check() {
036: Assert.assertTrue("Text should be empty but contains: "
037: + jLabel.getText(),
038: jLabel.getText().length() == 0);
039: }
040: };
041: }
042:
043: public Assertion textEquals(final String text) {
044: return new Assertion() {
045: public void check() {
046: Assert.assertEquals(text, jLabel.getText());
047: }
048: };
049: }
050:
051: public Assertion htmlEquals(String html) {
052: return new Assertion() {
053: public void check() {
054: Assert.fail("This component does not support html.");
055: }
056: };
057: }
058:
059: public Assertion textContains(final String text) {
060: return new Assertion() {
061: public void check() {
062: String actualText = jLabel.getText();
063: Assert.assertTrue(
064: "The component text does not contain '" + text
065: + "' - actual content is: "
066: + actualText,
067: actualText.indexOf(text) >= 0);
068: }
069: };
070: }
071:
072: public Assertion textDoesNotContain(final String text) {
073: return new Assertion() {
074: public void check() {
075: String actualText = jLabel.getText();
076: Assert.assertTrue(
077: "The component text should not contain '"
078: + text + "' - actual content is: "
079: + actualText,
080: actualText.indexOf(text) < 0);
081: }
082: };
083: }
084:
085: public Assertion isEditable() {
086: return new Assertion() {
087: public void check() {
088: Assert.fail("Text is not editable");
089: }
090: };
091: }
092:
093: public void clickOnHyperlink(String link) {
094: Assert.fail("This component does not support hyperlinks.");
095: }
096:
097: public Assertion iconEquals(final Icon icon) {
098: return new Assertion() {
099: public void check() {
100: Assert.assertEquals("Unexpected icon", icon, jLabel
101: .getIcon());
102: }
103: };
104: }
105:
106: public void pressKey(Key key) {
107: KeyUtils.pressKey(jLabel, key);
108: }
109:
110: private void throwNotEditableError() {
111: Assert.fail("The text box is not editable");
112: }
113: }
|