# HttpUnit: Form wird nicht submitted



## abthun (19. Jan 2007)

Hallo and alle und viele Grüße aus München!

Ich habe eine kleine HttpUnit-Testklasse gebaut um den Login meiner
Seite zu testen. Der Submit hat jedoch überhaupt keine Wirkung; ich bleibe
auf der Login-Seite stehen. Die Welcome-Page, die danach kommen sollte
wird nie erreicht. Habt Ihr einen Hinweis für mich? Mir gehen die Ideen aus 

TIA, Andi


```
public void testMailLogin() throws Exception { 
try { 
WebConversation conversation = new WebConversation(); 
WebRequest request = new GetMethodWebRequest(URL); 
WebResponse response = conversation.getResponse(request); 
assertNotNull("No response from URL '" + URL + "'.", response); 
 
System.out.print("Fetching password login form ........."); 
WebForm loginForm = response.getFormWithName("login_Password"); 
assertNotNull("No form found with ID 'login_Password'", loginForm); 
System.out.println("OK.");  
 
// Fill out auth data and submit login form 
loginForm.setParameter("usr_name", "admin"); 
loginForm.setParameter("usr_password", "secret"); 
 
System.out.print("Test presence of login button ........"); 
SubmitButton sb = loginForm.getSubmitButton("login"); 
assertNotNull("No button found with ID 'login'", sb); 
System.out.println("OK.");  
response = loginForm.submit(sb); 
assertNotNull("No response after submit of login button", response); 
 
WebResponse selectUserPage = conversation.getCurrentPage(); 
 
System.out.println(selectUserPage.getTitle()); 
assertEquals(selectUserPage.getText().indexOf("Welcome") != -1, true); 
System.out.println("OK.");  
} 
catch (Exception e) { 
System.err.println("Exception: " + e); 
}  
 
} // testMailLogin()
```
----- 

my page: 

```
<form action="?" method="post" name="login_Password" target="_self" autocomplete="off" onsubmit="return isSingleClick()"> 
... 
<input maxlength="255" value="" name="usr_name" type="text" class="textfield " />
 
My password
 
<input maxlength="32" value="" class="textfield " type="password" name="usr_password" />
 
 
... 
 
</form>
```


----------



## KSG9|sebastian (22. Jan 2007)

form action="?" 

was soll das bewirken?
Wie sieht der Button aus?

<form action="#" method="post">
<input type="submit" value="blah" />
</form>


----------



## Guest (28. Jan 2007)

*Huch*, jetzt sehe ich erst die Antwort; habe die E-Mail-Benachrichtigung nicht bekommen.
Danke für´s Feedback.

Das ist ein "ganz normaler" Button, der bewirkt,
dass Username und Passwort gesendet werden.

Viele Grüsse,
Andi


----------



## KSG9|sebastian (28. Jan 2007)

Solltest du nicht mit dem response des Buttons weiterarbeiten? Wird dein Formular im Browser sauber gepostet und alles?
Läuft dein Code komplett durch ohne Exceptions? Die ganzen Ausgaben werden gemacht?
Kann es sein dass du bei dem POST-Request auto-forwarding aktivieren musst? Ich kennst nur vom HttpClient von Apache, und da musste separat noch auto-forwarding akzeptieren, da das Loginscript ja weiterleitet.

Wie sieht der Code vom Button aus? Wie sieht der Login-Code aus? Wird der Login über ein Servlet gesteuert?

Ui..fragen über fragen 

Edit:
Noch ne Frage 
Mach mal Ausgaben in den Logincode rein um zu überprüfen ob der Code überhautp aufgerufen wird.


----------



## Guest (29. Jan 2007)

KSG9|sebastian hat gesagt.:
			
		

> Solltest du nicht mit dem response des Buttons weiterarbeiten? Wird dein Formular im Browser sauber gepostet und alles?
> Läuft dein Code komplett durch ohne Exceptions? Die ganzen Ausgaben werden gemacht?
> Kann es sein dass du bei dem POST-Request auto-forwarding aktivieren musst? Ich kennst nur vom HttpClient von Apache, und da musste separat noch auto-forwarding akzeptieren, da das Loginscript ja weiterleitet.
> 
> ...



Hi!

Meiner Meinung nach arbeite ich mit der Response vom Button: response = loginForm.submit(sb); 
Oder was meinst Du?

Der Code läuft komplett durch, es handelt sich um eine bestehende Intranet-Seite, die ich nicht
gebaut habe; ich möchte nur mal automatisch testen.

Wenn ich mir den Quelltext der Seite anzeigen lasse, sieht der so aus:


```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title> Authentication Service</title>
<meta content="-1" http-equiv="Expires"/>
<meta content="no-cache" http-equiv="Pragma"/>
<meta content="text/javascript" http-equiv="Content-Script-Type"/>
<meta content="text/css" http-equiv="Content-Style-Type"/>

<style>
.loginField {
  height: 255px;
}
</style>

<link title="default_design_intranet" href="../login/styles/default_design.css" type="text/css" rel="stylesheet" />



<script type="text/javascript">
<!--
var checkflag = 1;

function isSingleClick() {

  if (checkflag == 1) {
    checkflag = checkflag + 1;
    return true;
	} else {
    return false;
  }
}

function closeChangePasswordPopup()
{
    // If we are in the change password popup then we close this window as it is no longer needed

    if (window.name == "GAChangePasswordWindow")
    {
        window.close();
    }
}


window.onload = closeChangePasswordPopup;
    
// -->
</script>



<script type="text/javascript">
<!--
function clearLogin() {
  document.forms.login_Password.reset();
  return true;
}

window.onunload = clearLogin;
// -->
</script>


</head>
<body>
<div id="displayArea" name="display">

<div id="logo">[img]../../login/images/default_design/login-visual.gif[/img]</div>






<div id="GlobalHeader">
		
		<style>
 		#GlobalHeader {
		  clear: none;
		}
		</style>
	</div>



<div id="loginGeneralHeader">

Welcome to the "Digital Doorman"!  
		
		<!--
		<style>
 		#loginGeneralHeader {
		  clear: none;
		}
		</style>
		-->
	
The application you tried to access requires your authentication. 
		By using one of the login methods below your access to the retrieved 
		application - and to other applications protected by Digital Doorman - 
		will be granted. (So called "Single Sign-On")
		
"Certificate-Login" is the most secure login method. Please use it, if ever possible.
	
</div>

<div id="hotline">If you need help, please contact your [img]../../login/images/default_design/icon-support.gif[/img][url="https://intranet.enter.myCompany.com/index.jsp?sdc_p=po2000001031260fcls6m1t4u19&sdc_entdoc=true"]hotline[/url]</div>


<!-- GeneralError
<table class="ErrorMessage">
<tr>
<td class="ErrorSymbol"><div class="ErrorSymbol">[img]../../login/images/default_design/icon-error.gif[/img]</div></td>
<td class="ErrorText">Login is not working in the moment, please do not try to login.</td>
</tr>
</table>
GeneralError -->
<table id="loginTable">
<tr>
<td width="7px">
[img]../../login/images/default_design/spacer.gif[/img]
</td>


<td class="login">
<div class="loginField">
<div class="loginHeader">
[url="../help/en_US/pages/index_email.html"]?[/url]
<div class="loginHeaderTitle">E-Mail Login</div>
</div>
<form action="?" method="post" name="login_Password" target="_self" autocomplete="off" onsubmit="return isSingleClick()">
<!-- PasswordError
<table class="ErrorMessage">
<tr>
<td class="ErrorSymbol"><div class="ErrorSymbol">[img]../../login/images/default_design/icon-error.gif[/img]</div></td>
<td class="ErrorText">Login with username and password is not working in the moment, please try another login method.</td>
</tr>
</table>
PasswordError -->
<div class="loginBodyPwd"><div>

My  e-mail address

<input maxlength="255" value="" name="usr_name" type="text" class="textfield " />

My password

<input maxlength="32" value="" class="textfield " type="password" name="usr_password" />


<div id="saveEmail">

<input type="checkbox" name="SaveEmail" class="checkbox" />


<div class="checkboxPwdLabel">Remember my e-mail address</div>
</div>

</div></div>
<button accesskey="e" name="login" type="submit" class="button loginPwdButton">Login</button>
<input name="AUTHMETHOD" value="UserPassword" type="hidden" />
<input name="Design" value="default_design_intranet" type="hidden" />
<input name="GAURI" value="https://dev.myProject.myCompany.com/webCenter/" type="hidden" />
<input name="URI" value="https://dev.myProject.myCompany.com/webCenter/" type="hidden" />
<input name="GAREASONCODE" value="-1" type="hidden" />
<input name="GARESOURCEID" value="dev1entitle" type="hidden" />
<input name="loginPassword" value="" type="hidden" />
<input name="LOCALE" value="en_US" type="hidden" />

</form>
<div class="loginAddContent">


<form action="?" method="post" name="new_Password" id="form_new_Password" target="_self" onSubmit="return isSingleClick()">

    		<input type="hidden" name="lang" value="en" />
	
<div style="font-weight: bold">Do you need a password?</div>
My  e-mail address

<input maxlength="255" value="" name="mail" type="text" class="textfield " />

<button name="requestPassword" type="submit" class="button pwdButton">Request</button>
</form>


</div>

</div>
</td>


</tr>
</table>

</body>
</html>
```


----------

