public void testUploadFiles() throws Exception {
String id = "1";
MockServer server = new MockServer();
FileInfo fileInfo = new FileInfo("foo.js", 1232, -1, false, false, null, "foo.js");
List<FileInfo> fileList = Arrays.asList(fileInfo);
JstdTestCase testCase = new JstdTestCase(Collections.<FileInfo>emptyList(), fileList, Collections.<FileInfo>emptyList(), "");
server.expect(baseUrl + "heartbeat?id=1", "OK");
server.expect(baseUrl + "fileSet?POST?{data=" + gson.toJson(testCase)
+ ", action=serverFileCheck}", "[]");
server.expect(baseUrl + "fileSet?POST?{id=1, data=" + gson.toJson(testCase)
+ ", action=browserFileCheck}", gson.toJson(new BrowserFileSet()));
server.expect(baseUrl + "cmd?POST?{data={mooh}, id=1}", "");
server.expect(baseUrl + "cmd?id=1", "{\"response\":{\"response\":\"response\","
+ "\"browser\":{\"name\":\"browser\"},\"error\":\"error\",\"executionTime\":123},"
+ "\"last\":true}");
BrowserInfo browserInfo = new BrowserInfo();
browserInfo.setId(Long.parseLong(id));
browserInfo.setUploadSize(10);
server.expect(baseUrl + "cmd?listBrowsers", gson.toJson(Lists.newArrayList(browserInfo)));
Map<String, String> params = new LinkedHashMap<String, String>();
params.put("data", "{mooh}");
params.put("id", "1");
FakeResponseStream stream = new FakeResponseStream();
MockFileLoader fileReader = new MockFileLoader();
fileReader.addExpectation(fileInfo, "foobar");
CommandTask task = createCommandTask(server, params,
stream, fileReader, true);
task.run(new JstdTestCase(Collections.<FileInfo>emptyList(), Lists.newArrayList(fileInfo), java.util.Collections.<FileInfo> emptyList(), ""));
Response response = stream.getResponse();
assertEquals("response", response.getResponse());
assertEquals("browser", response.getBrowser().getName());
assertEquals("error", response.getError());