Package com.google.jstestdriver

Examples of com.google.jstestdriver.SlaveBrowser


public class BrowserReaperTest extends TestCase {

  public void testReapDeadBrowser() throws Exception {
    final CapturedBrowsers browsers = new CapturedBrowsers(new BrowserIdStrategy(new MockTime(0)));
    final MockTime time = new MockTime(1);
    final SlaveBrowser browserOne =
        new SlaveBrowser(time, "1", new BrowserInfo(), 20, null, CaptureHandler.QUIRKS,
            RunnerType.CLIENT, BrowserState.CAPTURED, new Instant(0));
    browsers.addSlave(browserOne);
    final SlaveBrowser browserTwo =
        new SlaveBrowser(time, "2", new BrowserInfo(), 20, null, CaptureHandler.QUIRKS,
            RunnerType.CLIENT, BrowserState.CAPTURED, new Instant(0));
    browsers.addSlave(browserTwo);
    final BrowserReaper browserReaper = new BrowserReaper(browsers);
    time.add(8000);
    browserOne.heartBeat();
    assertFalse(browserTwo.isAlive());
    browserReaper.run();
    assertEquals(1, browsers.getBrowsers().size());
  }
View Full Code Here


  }

  public void testDontReapDeadBrowserWithLock() throws Exception {
    final CapturedBrowsers browsers = new CapturedBrowsers(new BrowserIdStrategy(new MockTime(0)));
    final MockTime time = new MockTime(1);
    final SlaveBrowser browserOne =
        new SlaveBrowser(time, "1", new BrowserInfo(), 20, null, CaptureHandler.QUIRKS,
            RunnerType.CLIENT, BrowserState.CAPTURED, new Instant(0));
    browsers.addSlave(browserOne);
    final SlaveBrowser browserTwo =
        new SlaveBrowser(time, "2", new BrowserInfo(), 20, null, CaptureHandler.QUIRKS,
            RunnerType.CLIENT, BrowserState.CAPTURED, new Instant(0));
    browsers.addSlave(browserTwo);
    final BrowserReaper browserReaper = new BrowserReaper(browsers);
    time.add(40);
    browserOne.heartBeat();
    browserTwo.tryLock("locked");
    browserReaper.run();
    assertEquals(2, browsers.getBrowsers().size());
  }
View Full Code Here

      new ConcurrentHashMap<SlaveBrowser, List<String>>();

  public void testGetDataFromJsPuppetServer() throws Exception {
    CapturedBrowsers browsers = new CapturedBrowsers(new BrowserIdStrategy(new MockTime(0)));
    String id = "1";
    SlaveBrowser slave =
        new SlaveBrowser(new TimeImpl(), id, new BrowserInfo(), 20, null, CaptureHandler.QUIRKS,
            RunnerType.CLIENT, BrowserState.CAPTURED, new Instant(0));
    String data = "hello";

    slave.createCommand(data);
    browsers.addSlave(slave);
    BrowserQueryResponseHandler handler =
        new BrowserQueryResponseHandler(null, null, browsers, streamedResponses);

    handler.service(id, null, "true", null, writer);
View Full Code Here

  }

  public void testSettingResponseForACommand() throws Exception {
    CapturedBrowsers browsers = new CapturedBrowsers(new BrowserIdStrategy(new MockTime(0)));
    String id = "1";
    SlaveBrowser slave =
        new SlaveBrowser(new TimeImpl(), id, new BrowserInfo(), 20, null, CaptureHandler.QUIRKS,
            RunnerType.CLIENT, BrowserState.CAPTURED, new Instant(0));

    browsers.addSlave(slave);
    BrowserQueryResponseHandler handler =
        new BrowserQueryResponseHandler(null, null, browsers, streamedResponses);
    slave.createCommand("awaitingResponse");
    slave.dequeueCommand();
    slave.createCommand("BrowserCommand");
    Gson gson = new Gson();
    Response response = new Response();

    response.setResponse("response");
    BrowserInfo browserInfo = new BrowserInfo();

    browserInfo.setId(1L);
    browserInfo.setName("browser");
    browserInfo.setOs("OS");
    browserInfo.setVersion("version");
    response.setBrowser(browserInfo);
    handler.service(id, gson.toJson(response), "true", null, writer);
    assertEquals("BrowserCommand", out.toString());
    assertEquals(response, slave.getResponse().getResponse());
  }
View Full Code Here

  }

  public void testSimulatePollTimeoutDequeueNullCommand() throws Exception {
    CapturedBrowsers browsers = new CapturedBrowsers(new BrowserIdStrategy(new MockTime(0)));
    String id = "1";
    SlaveBrowser slave =
        new SlaveBrowser(new TimeImpl(), id, new BrowserInfo(), 20, null,
            CaptureHandler.QUIRKS,
            RunnerType.CLIENT, BrowserState.CAPTURED, new Instant(0));

    slave.setDequeueTimeout(0L, TimeUnit.NANOSECONDS);
    browsers.addSlave(slave);
    BrowserQueryResponseHandler handler =
        new BrowserQueryResponseHandler(null, null, browsers, streamedResponses);

    handler.service(id, null, "true", null, writer);
View Full Code Here

  public void testConnectionHeartBeat() throws Exception {
    CapturedBrowsers browsers = new CapturedBrowsers(new BrowserIdStrategy(new MockTime(0)));
    String id = "1";
    MockTime time = new MockTime(42L);
    SlaveBrowser slave =
        new SlaveBrowser(time, id, new BrowserInfo(), 20, null, CaptureHandler.QUIRKS,
            RunnerType.CLIENT, BrowserState.CAPTURED, new Instant(0));
    String data = "hello";

    slave.createCommand(data);
    browsers.addSlave(slave);
    BrowserQueryResponseHandler handler =
        new BrowserQueryResponseHandler(null, null, browsers, streamedResponses);

    handler.service(id, null, null, null, writer);
    assertEquals(42L, slave.getLastHeartbeat().getMillis());
  }
View Full Code Here

  }

  public void testDoNotGetCommandIfNotLastResponse() throws Exception {
    CapturedBrowsers browsers = new CapturedBrowsers(new BrowserIdStrategy(new MockTime(0)));
    String id = "1";
    SlaveBrowser slave =
        new SlaveBrowser(new TimeImpl(), id, new BrowserInfo(), 20, null, CaptureHandler.QUIRKS,
            RunnerType.CLIENT, BrowserState.CAPTURED, new Instant(0));

    browsers.addSlave(slave);
    BrowserQueryResponseHandler handler =
        new BrowserQueryResponseHandler(null, null, browsers, streamedResponses);
    slave.createCommand("awaitingResponse");
    slave.dequeueCommand();
    slave.createCommand("BrowserCommand");
    Gson gson = new Gson();
    Response response = new Response();

    response.setResponse("response");
    BrowserInfo browserInfo = new BrowserInfo();
View Full Code Here

  }

  public void testFilesLoadedAreAddedToTheBrowserFileSet() throws Exception {
    CapturedBrowsers browsers = new CapturedBrowsers(new BrowserIdStrategy(new MockTime(0)));
    String id = "1";
    SlaveBrowser slave =
        new SlaveBrowser(new TimeImpl(), id, new BrowserInfo(), 20, null, CaptureHandler.QUIRKS,
            RunnerType.CLIENT, BrowserState.CAPTURED, new Instant(0));

    browsers.addSlave(slave);
    BrowserQueryResponseHandler handler =
        new BrowserQueryResponseHandler(null, null, browsers, streamedResponses);
    List<FileResult> fileResults = new LinkedList<FileResult>();

    fileResults.add(new FileResult(new FileSource("/test/filename1.js", "filename1.js", 123, -1), true, ""));
    fileResults.add(new FileResult(new FileSource("/test/filename2.js", "filename2.js", 456, -1), true, ""));
    fileResults.add(new FileResult(new FileSource("/test/filename3.js", "filename3.js", 789, -1), true, ""));
    slave.createCommand("awaitingResponse");
    slave.dequeueCommand();
    slave.createCommand("BrowserCommand");
    Response response = new Response();

    response.setType(ResponseType.FILE_LOAD_RESULT.name());
    response.setResponse(gson.toJson(new LoadedFiles(fileResults)));
    handler.service("1", gson.toJson(response), "", null, writer);

    Set<FileInfo> fileInfos = slave.getFileSet();

    assertEquals(3, fileInfos.size());
    Iterator<FileInfo> iterator = fileInfos.iterator();

    FileInfo info1 = iterator.next();
View Full Code Here

  }

  public void testResetClearsTheBrowserFileSet() throws Exception {
    CapturedBrowsers browsers = new CapturedBrowsers(new BrowserIdStrategy(new MockTime(0)));
    String id = "1";
    SlaveBrowser slave =
        new SlaveBrowser(new TimeImpl(), id, new BrowserInfo(), 20, null, CaptureHandler.QUIRKS,
            RunnerType.CLIENT, BrowserState.READY, new Instant(0));

    browsers.addSlave(slave);
    BrowserQueryResponseHandler handler =
        new BrowserQueryResponseHandler(null, null, browsers, streamedResponses);

    slave.addFiles(Lists.newArrayList(new FileInfo()), new LoadedFiles());
    Response response = new Response();
    response.setType(ResponseType.RESET_RESULT.name());
    response.setResponse(new Gson().toJson(new LoadedFiles()));
    response.setBrowser(new BrowserInfo());

    JsonCommand resetCommand = new JsonCommand(CommandType.RESET, Collections.<String>emptyList());
    slave.createCommand(gson.toJson(resetCommand));
    slave.dequeueCommand();

    handler.service(id, gson.toJson(response), "", null, writer);

    Set<FileInfo> fileInfos = slave.getFileSet();

    assertEquals("Command is not in the approriate state to deal with race condition.",
        new Command(gson.toJson(resetCommand)), slave.getCommandRunning());

    assertEquals(0, fileInfos.size());
  }
View Full Code Here

    }
    FilesCache cache = new FilesCache(files);
    CapturedBrowsers capturedBrowsers = new CapturedBrowsers(new BrowserIdStrategy(new MockTime(0)));
    BrowserInfo browserInfo = new BrowserInfo();
    browserInfo.setUploadSize(50);
    SlaveBrowser slaveBrowser = new SlaveBrowser(new MockTime(10),
        "1",
        browserInfo,
        1200,
        null,
        CaptureHandler.QUIRKS,
        RunnerType.CLIENT,
        BrowserState.CAPTURED,
        new Instant(0));
    capturedBrowsers.addSlave(slaveBrowser);
    StandaloneRunnerHandler handler =
        new StandaloneRunnerHandler(null, null, new SlaveResourceService(""),
            new ConcurrentHashMap<SlaveBrowser, Thread>(), null, null);
    handler.service(slaveBrowser);

    assertNotNull(slaveBrowser.peekCommand());
    Command cmd = slaveBrowser.dequeueCommand();
    assertNotNull(cmd);
    assertEquals("{\"command\":\"runAllTests\",\"parameters\":[\"false\",\"false\",\"0\"]}",
        cmd.getCommand());
  }
View Full Code Here

TOP

Related Classes of com.google.jstestdriver.SlaveBrowser

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.