📄 textboxforhtmltestcomponenttest.java
字号:
package org.uispec4j;
import junit.framework.AssertionFailedError;
import org.uispec4j.utils.AssertionFailureNotDetectedError;
import org.uispec4j.utils.FileTestUtils;
import org.uispec4j.utils.Functor;
import org.uispec4j.utils.UIComponentFactory;
import org.uispec4j.xml.XmlAssert;
import javax.swing.*;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.text.JTextComponent;
import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.net.URL;
public class TextboxForHtmlTestComponentTest extends TextBoxComponentTestCase {
private JTextComponent jTextComponent;
protected void setUp() throws Exception {
super.setUp();
initWithHtmlTextPane();
}
protected void createTextBox(String text) {
textBox = new TextBox(jTextComponent);
textBox.setText(text);
}
public void testGetComponentTypeName() throws Exception {
assertEquals("textBox", UIComponentFactory.createUIComponent(new JTextPane()).getDescriptionTypeName());
}
public void testGetDescription() throws Exception {
XmlAssert.assertEquivalent("<textBox name='myText'/>", textBox.getDescription());
}
public void testFactory() throws Exception {
checkFactory(new JTextArea(), TextBox.class);
checkFactory(new JTextPane(), TextBox.class);
checkFactory(new JEditorPane(), TextBox.class);
checkFactory(new JTextField(), TextBox.class);
}
public void testAssertTextEqualsWithHtml() throws Exception {
initWithHtmlTextPane();
String text = "Universal <b>rules</b>:" +
"<ul>" +
"<li style=\"margin-top: 0\" align=\"center\">a < b</li>" +
"<li>2 > 1</li>" +
"</ul>";
textBox.setText(text);
assertTrue(textBox.textEquals("Universal rules: a < b 2 > 1"));
try {
assertTrue(textBox.textEquals("Universal rules: a < b 2 > 1, seb is the best"));
throw new AssertionFailureNotDetectedError();
}
catch (AssertionFailedError e) {
}
}
public void testAssertHtmlEqualsWithMetaInHeader() throws Exception {
initWithHtmlTextPane();
String text = "<html>" +
" <head>" +
" <meta name=\"UISpec4J\" land=\"en\"/>" +
" <title name=\"Universal rules\"/>" +
" </head>" +
" <body>" +
" Universal <b>rules</b>:" +
" <ul>" +
" <li>a < b</li>" +
" <li>2 > 1</li>" +
" </ul>" +
" </body>" +
"</html>";
textBox.setText(text);
assertTrue(textBox.htmlEquals(text));
try {
assertTrue(textBox.htmlEquals("Universal <b>rules</b>:" +
"<ul>" +
"<li>a < b</li>" +
"</ul>"));
throw new AssertionFailureNotDetectedError();
}
catch (AssertionFailedError e) {
}
}
public void testAssertHtmlEquals() throws Exception {
initWithHtmlTextPane();
String text = "Universal <b>rules</b>:" +
"<ul>" +
"<li>a < b</li>" +
"<li>2 > 1</li>" +
"</ul>";
textBox.setText(text);
assertTrue(textBox.htmlEquals(text));
try {
assertTrue(textBox.htmlEquals("Universal <b>rules</b>:" +
"<ul>" +
"<li>a < b</li>" +
"</ul>"));
throw new AssertionFailureNotDetectedError();
}
catch (AssertionFailedError e) {
}
}
public void testAssertTextContainsWithHtml() throws Exception {
initWithHtmlTextPane();
String text = "My name is <b>Bond</b>";
textBox.setText(text);
assertTrue(textBox.textContains("Bond"));
try {
assertTrue(textBox.textContains("error"));
throw new AssertionFailureNotDetectedError();
}
catch (AssertionFailedError e) {
assertEquals("The component text does not contain 'error' - actual content is:<html>\n" +
" <head>\n" +
" </head>\n" +
" <body>My name is <b>Bond</b></body>\n" +
"</html>\n",
e.getMessage());
}
}
public void testAssertTextEqualsWithEmptyStringIsTheSameAsAssertTextIsEmpty() throws Exception {
initWithHtmlTextPane();
assertTrue(textBox.textEquals(""));
jTextComponent.setText("blah");
jTextComponent.setText("");
assertTrue(textBox.textEquals(""));
}
public void testAssertTextContainsHandlesHtmlLineBreaksAndFormatting() throws Exception {
initWithHtmlTextPane();
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < 20; i++) {
buffer.append("blah ");
}
String text = buffer.toString();
textBox.setText(text);
assertTrue(textBox.textContains(text));
}
public void testAssertEmptyWithHtml() throws Exception {
initWithHtmlTextPane();
assertTrue(textBox.textIsEmpty());
jTextComponent.setText("");
assertTrue(textBox.textIsEmpty());
jTextComponent.setText("a");
try {
assertTrue(textBox.textIsEmpty());
throw new AssertionFailureNotDetectedError();
}
catch (AssertionFailedError e) {
assertEquals("Text should be empty but contains: <html>\n" +
" <head>\n" +
" \n" +
" </head>\n" +
" <body>\n" +
" a\n" +
" </body>\n" +
"</html>\n",
e.getMessage());
}
jTextComponent.setText("<html>\n" +
" <head>\n" +
"\n" +
" </head>\n" +
" <body>\n" +
" <p>\n" +
" \n" +
" </p>\n" +
" </body>\n" +
"</html>\n" +
"\n" +
"");
assertTrue(textBox.textIsEmpty());
jTextComponent.setText("<html><p></html>");
jTextComponent.setText("");
assertTrue(textBox.textIsEmpty());
}
public void testAssertEmptyAfterReset() throws Exception {
initWithHtmlTextPane();
assertTrue(textBox.textIsEmpty());
jTextComponent.setText("blah");
jTextComponent.setText("");
assertTrue(textBox.textIsEmpty());
}
private JTextPane createHtmlTextPane(String html) {
JTextPane textPane = new JTextPane();
textPane.setContentType("text/html");
textPane.setText(html);
return textPane;
}
//TODO: this test should pass
public void disabled_testClickOnHyperLinkWhenPageLoadingIsNotImmediate() throws Exception {
final JEditorPane editorPane = new JEditorPane("http://www.agilemanifesto.org/");
JScrollPane editorScrollPane = new JScrollPane(editorPane);
editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -