次のコードを含む jsp ファイルがあります。
<form name="postToChatPicMsg" method="post" action="/api/media/postToChatPicMsg" enctype="multipart/form-data">
<br>udid:<input type="text" name="udid" value="54321dsfsdfsdfasdas">
<br>token:<input type="text" name="token" value="32cfa8b259c38bdd95f8cede17acb366">
<br>mediaFile:<input type="file" name="mediaFile">
<br>message:<input type="text" name="message" value="">
<br><input type="submit" name="submitButton">
</form>
これはjspから機能します。テストを自動化するために、HTMLUnit を使用しようとしており、次のことを試みています。
WebClient c = new WebClient();
HtmlPage p;
try {
p = c.getPage("http://localhost:55080/api.jsp");
HtmlForm uploadForm = p.getFormByName("postToChatPicMsg");
HtmlFileInput fileInput = uploadForm.getInputByName("mediaFile");
fileInput.setValueAttribute("/src/test/resources/logo.jpg");
((HtmlSubmitInput)uploadForm).getInputByName("submitButton")).click());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
API を呼び出すと、xml が返されます。呼び出しが通過してサーバーに到達することを期待していましたが、ログでアクティビティを確認できます。しかし、何も起こらないようです。
HTMLUnitを使用しようとするのはこれが初めてです。