1 38 package com.gargoylesoftware.htmlunit.javascript.host; 39 40 import java.util.ArrayList; 41 import java.util.Arrays; 42 import java.util.List; 43 44 import com.gargoylesoftware.htmlunit.WebTestCase; 45 import com.gargoylesoftware.htmlunit.html.HtmlButtonInput; 46 import com.gargoylesoftware.htmlunit.html.HtmlForm; 47 import com.gargoylesoftware.htmlunit.html.HtmlPage; 48 import com.gargoylesoftware.htmlunit.html.HtmlTextArea; 49 50 51 58 public class TextareaTest extends WebTestCase { 59 63 public TextareaTest( final String name ) { 64 super(name); 65 } 66 67 68 71 public void testGetValue() throws Exception { 72 final String htmlContent 73 = "<html><head><title>foo</title><script>" 74 + "function doTest(){\n" 75 + "alert(document.form1.textarea1.value )\n" 76 + "document.form1.textarea1.value='PoohBear';\n" 77 + "alert(document.form1.textarea1.value )\n" 78 + "}\n" 79 + "</script></head><body onload='doTest()'>" 80 + "<p>hello world</p>" 81 + "<form name='form1' method='post' >" 82 + "<textarea name='textarea1' cols='45' rows='4'>1234</textarea>" 83 + "</form></body></html>"; 84 final List collectedAlerts = new ArrayList(); 85 final HtmlPage page = loadPage(htmlContent, collectedAlerts); 86 assertEquals("foo", page.getTitleText()); 87 88 final List expectedAlerts = Arrays.asList( new String[]{ 89 "1234", "PoohBear" 90 } ); 91 92 assertEquals( expectedAlerts, collectedAlerts ); 93 } 94 95 96 99 public void testOnChange() throws Exception { 100 final String htmlContent = "<html><head><title>foo</title>" 101 + "</head><body>" 102 + "<p>hello world</p>" 103 + "<form name='form1'>" 104 + " <textarea name='textarea1' onchange='alert(this.value)'></textarea>" 105 + "<input name='myButton' type='button' onclick='document.form1.textarea1.value=\"from button\"'>" 106 + "</form>" 107 + "</body></html>"; 108 109 final List collectedAlerts = new ArrayList(); 110 final HtmlPage page = loadPage(htmlContent, collectedAlerts); 111 112 final HtmlForm form = page.getFormByName("form1"); 113 final HtmlTextArea textarea 114 = (HtmlTextArea)form.getTextAreasByName("textarea1").get(0); 115 textarea.setText("foo"); 116 final HtmlButtonInput button = (HtmlButtonInput) form.getInputByName("myButton"); 117 button.click(); 118 119 final List expectedAlerts = Arrays.asList(new String[] {"foo"}); 120 assertEquals(expectedAlerts, collectedAlerts); 121 } 122 123 127 public void testSetValue() throws Exception { 128 final String content = "<html><head></head>" 129 + "<body>" 130 + "<form name='form1'>" 131 + "<textarea name='question'></textarea>" 132 + "<input type='button' name='btn_submit' value='Next'>" 133 + "</form>" 134 + "<script>" 135 + "document.form1.question.value = 'some text';" 136 + "alert(document.form1.elements[0].tagName);" 137 + "alert(document.form1.elements[1].tagName);" 138 + "</script>" 139 + "</body>" 140 + "</html>"; 141 final List expectedAlerts = Arrays.asList( new String[]{ "TEXTAREA", "INPUT" } ); 142 final List collectedAlerts = new ArrayList(); 143 createTestPageForRealBrowserIfNeeded(content, expectedAlerts); 144 loadPage(content, collectedAlerts); 145 146 assertEquals(expectedAlerts, collectedAlerts); 147 } 148 } 149 | Popular Tags |