📄 formscriptingtest.java
字号:
"<body>" + "<form name=mainForm action='DoIt'>" + " <a href='javascript:myFunction()'>View Asset</a>" + " <input type='hidden' name='id'>" + "</form>" + "</body></html>" ); WebConversation wc = new WebConversation(); WebResponse response = wc.getResponse( getHostPath() + "/OnCommand.html" ); response.getLinks()[ 0 ].click(); } public void testEnablingDisabledSubmitButtonViaScript() throws Exception { defineResource( "DoIt?color=green&change=success", "You made it!" ); defineResource( "OnCommand.html", "<html><head></head>" + "<body>" + "<form name=spectrum action='DoIt'>" + " <input type=text name=color value=green>" + " <input type=button name=enableChange id=enableChange value=Hello onClick='document.spectrum.change.disabled=false;'>" + " <input type=submit disabled name=change value=success>" + "</form>" + "</body></html>" ); WebConversation wc = new WebConversation(); WebResponse response = wc.getResponse( getHostPath() + "/OnCommand.html" ); WebForm form = response.getFormWithName( "spectrum" ); assertSubmitButtonDisabled( form ); assertDisabledSubmitButtonCanNotBeClicked( form ); form = runJavaScriptToToggleEnabledStateOfButton( form, wc ); assertSubmitButtonEnabled( form ); clickSubmitButtonToProveThatItIsEnabled( form ); assertEquals( "Result of submit", "You made it!", wc.getCurrentPage().getText() ); } public void testDisablingEnabledSubmitButtonViaScript() throws Exception { defineResource( "DoIt?color=green&change=success", "You made it!" ); defineResource( "OnCommand.html", "<html><head></head>" + "<body>" + "<form name=spectrum action='DoIt'>" + " <input type=text name=color value=green>" + " <input type=button name=enableChange id=enableChange value=Hello onClick='document.spectrum.change.disabled=true;'>" + " <input type=submit name=change value=success>" + "</form>" + "</body></html>" ); WebConversation wc = new WebConversation(); WebResponse response = wc.getResponse( getHostPath() + "/OnCommand.html" ); WebForm form = response.getFormWithName( "spectrum" ); assertSubmitButtonEnabled( form ); form = runJavaScriptToToggleEnabledStateOfButton( form, wc ); assertNotNull( form ); assertSubmitButtonDisabled( form ); assertDisabledSubmitButtonCanNotBeClicked( form ); } public void testEnablingDisabledNormalButtonViaScript() throws Exception { defineResource( "DoIt?color=green", "You made it!" ); defineResource( "OnCommand.html", "<html><head></head>" + "<body>" + "<form name=spectrum action='DoIt'>" + " <input type=text name=color value=green>" + " <input type=button name=enableChange id=enableChange value=Hello onClick='document.spectrum.changee.disabled=false;'>" + " <input type=button disabled name=changee id=changee value=Hello onClick='document.spectrum.submit();'>" + " <input type=submit name=change value=success>" + "</form>" + "</body></html>" ); WebConversation wc = new WebConversation(); WebResponse response = wc.getResponse( getHostPath() + "/OnCommand.html" ); WebForm form = response.getFormWithName( "spectrum" ); assertNormalButtonDisabled( form, "changee" ); assertDisabledNormalButtonCanNotBeClicked( form, "changee" ); form = runJavaScriptToToggleEnabledStateOfButton( form, wc ); assertNormalButtonEnabled( form, "changee" ); clickButtonToProveThatItIsEnabled( form, "changee" ); assertEquals( "Result of submit", "You made it!", wc.getCurrentPage().getText() ); } public void testDisablingEnableddNormalButtonViaScript() throws Exception { defineResource( "DoIt?color=green", "You made it!" ); defineResource( "OnCommand.html", "<html><head></head>" + "<body>" + "<form name=spectrum action='DoIt'>" + " <input type=text name=color value=green>" + " <input type=button name=enableChange id=enableChange value=Hello onClick='document.spectrum.changee.disabled=true;'>" + " <input type=button name=changee id=changee value=Hello onClick='document.spectrum.submit();'>" + " <input type=submit name=change value=success>" + "</form>" + "</body></html>" ); WebConversation wc = new WebConversation(); WebResponse response = wc.getResponse( getHostPath() + "/OnCommand.html" ); WebForm form = response.getFormWithName( "spectrum" ); assertNormalButtonEnabled( form, "changee" ); form = runJavaScriptToToggleEnabledStateOfButton( form, wc ); assertNormalButtonDisabled( form, "changee" ); assertDisabledNormalButtonCanNotBeClicked( form, "changee" ); } private void assertSubmitButtonDisabled( WebForm form ) { assertTrue( "Button should have been Disabled", form.getSubmitButton( "change" ).isDisabled() ); } private void assertNormalButtonDisabled( WebForm form, String buttonID ) { assertTrue( "Button should have been Disabled", form.getButtonWithID( buttonID ).isDisabled() ); } private void assertSubmitButtonEnabled( WebForm form ) { assertFalse( "Button should have been enabled or NOT-Disabled", form.getSubmitButton( "change" ).isDisabled() ); } private void assertNormalButtonEnabled( WebForm form, String buttonID ) { assertFalse( "Button should have been enabled or NOT-Disabled", form.getButtonWithID( buttonID ).isDisabled() ); } private void clickSubmitButtonToProveThatItIsEnabled( WebForm form ) throws IOException, SAXException { WebResponse response = form.submit(); assertNotNull( response ); } private void clickButtonToProveThatItIsEnabled( WebForm form, String buttonID ) throws IOException, SAXException { form.getButtonWithID( buttonID ).click(); } private WebForm runJavaScriptToToggleEnabledStateOfButton( WebForm form, WebConversation wc ) throws IOException, SAXException { Button enableChange = form.getButtonWithID( "enableChange" ); enableChange.click(); WebResponse currentPage = wc.getCurrentPage(); form = currentPage.getFormWithName( "spectrum" ); return form; } private void assertDisabledSubmitButtonCanNotBeClicked( WebForm form ) { try { SubmitButton button = form.getSubmitButton( "change" ); form.submit( button ); } catch (Exception e) { assertTrue( e.toString().indexOf( "The specified button (name='change' value='success' is disabled and may not be used to submit this form" ) > -1 ); } } private void assertDisabledNormalButtonCanNotBeClicked( WebForm form, String buttonID ) { try { Button button = form.getButtonWithID( buttonID ); button.click(); } catch (Exception e) { assertTrue( e.toString().indexOf( "Button 'changee' is disabled and may not be clicked" ) > -1 ); } } public void testEnablingDisabledRadioButtonViaScript() throws Exception { defineResource( "OnCommand.html", "<html><head></head>" + "<body>" + "<form name=spectrum action='DoIt'>" + "<input type='radio' name='color' value='red' checked>" + "<input type='radio' name='color' value='green' disabled>" + "<input type=button name=enableChange id=enableChange value=Hello onClick='document.spectrum.color[1].disabled=false;'>" + "<input type=submit name=change value=success>" + "</form>" + "</body></html>" ); WebConversation wc = new WebConversation(); WebResponse response = wc.getResponse( getHostPath() + "/OnCommand.html" ); WebForm form = response.getFormWithName( "spectrum" ); assertMatchingSet( "Color choices", new String[] { "red" }, form.getOptionValues( "color" ) ); try { form.setParameter( "color", "green" ); fail( "Should not have been able to set color" ); } catch (Exception e) {} form.getScriptableObject().doEvent( "document.spectrum.color[1].disabled=false" ); assertMatchingSet( "Color choices", new String[] { "red", "green" }, form.getOptionValues( "color" ) ); form.setParameter( "color", "green" ); } public void testSubmitViaScriptWithPostParams() throws Exception { defineResource( "/servlet/TestServlet?param3=value3¶m4=value4", new PseudoServlet() { public WebResource getPostResponse() { return new WebResource( "You made it!", "text/plain" ); } } ); defineResource( "OnCommand.html", "<html><head></head>" + "<body>" + "<form method=POST enctype='multipart/form-data' name='TestForm'>" + " <input type=hidden name=param1 value='value1'>" + " <input type=text name=param2 value=''>" + "</form>" + "<a href='#' onclick='SubmitForm(\"/servlet/TestServlet?param3=value3¶m4=value4\")'>" + "<img SRC='/gifs/submit.gif' ALT='Submit' TITLE='Submit' NAME='Submit'></a>" + "<script language=JavaScript type='text/javascript'>" + " function SubmitForm(submitLink) {" + " var ltestForm = document.TestForm;" + " ltestForm.action = submitLink;" + " ltestForm.submit();" + " }" + "</script>" + "</body></html>" ); WebConversation wc = new WebConversation(); WebResponse response = wc.getResponse( getHostPath() + "/OnCommand.html" ); response.getLinks()[0].click(); assertEquals( "Result of submit", "You made it!", wc.getCurrentPage().getText() ); } public void testSubmitButtonlessFormViaScript() throws Exception { defineResource( "DoIt?color=green", "You made it!" );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -