public static boolean test1(String url) {
    if (verbose)
      System.out.println(
          "javascript window.open with location and size parameters - args: "
              + url
              + "\n  Expected Event Sequence: Visibility.show");
    passed = false;

    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());
    final Browser browser = new Browser(shell, SWT.NONE);
    browser.addOpenWindowListener(
        new OpenWindowListener() {
          public void open(WindowEvent event) {
            if (verbose) System.out.println("OpenWindow " + index);
            Shell newShell = new Shell(display);
            newShell.setLayout(new FillLayout());
            Browser browser = new Browser(newShell, SWT.NONE);
            browser.setData("index", new Integer(index));
            browser.addVisibilityWindowListener(
                new VisibilityWindowListener() {
                  public void hide(WindowEvent event) {}

                  public void show(WindowEvent event) {
                    Browser browser = (Browser) event.widget;
                    Shell parent = browser.getShell();
                    Point location = event.location;
                    Point size = event.size;
                    if (location != null) parent.setLocation(location);
                    if (size != null) parent.setSize(size);
                    int index = ((Integer) browser.getData("index")).intValue();
                    parent.setText("SWT Browser shell " + index);
                    parent.open();
                    if (index < 0) {
                      /* Certain browsers fire multiple show events for no good reason. Further show events
                       * are considered 'legal' as long as they don't contain size and location information.
                       */
                      if (location != null || size != null) {
                        if (verbose)
                          System.out.println(
                              "Failure - Browser " + index + " is receiving multiple show events");
                        passed = false;
                        shell.close();
                      } else {
                        if (verbose)
                          System.out.println(
                              "Unnecessary (but harmless) visibility.show event Browser " + index);
                      }
                    } else {
                      if (verbose)
                        System.out.println(
                            "Visibility.show browser "
                                + index
                                + " location "
                                + location
                                + " size "
                                + size);
                      browser.setData("index", new Integer(-100 - index));

                      /* Certain browsers include decorations in addition to the expected size.
                       * Accept sizes that are greater than or equal to the expected size.
                       * Certain browsers invent size or location when some parameters are missing.
                       * If we expect null for one of size or location, also accept non null answers.
                       */
                      Point expectedLocation = regressionBounds[index][0];
                      Point expectedSize = regressionBounds[index][1];
                      if (verbose)
                        System.out.println(
                            "Expected location " + expectedLocation + " size " + expectedSize);
                      boolean checkLocation =
                          (location == null && expectedLocation == null)
                              || (location != null && location.equals(expectedLocation)
                                  || (location != null && expectedLocation == null));
                      boolean checkSize =
                          (size == null && expectedSize == null)
                              || (size != null && size.equals(expectedSize))
                              || (size != null && expectedSize == null)
                              || (size != null
                                  && size.x >= expectedSize.x
                                  && size.y >= expectedSize.y);
                      if (!checkSize || !checkLocation) {
                        if (verbose) System.out.println("	Failure ");
                        passed = false;
                        shell.close();
                        return;
                      } else cntPassed++;
                    }
                  }
                });
            browser.addCloseWindowListener(
                new CloseWindowListener() {
                  public void close(WindowEvent event) {
                    cntClosed++;
                    if (verbose) System.out.println("Close");
                    Browser browser = (Browser) event.widget;
                    browser.getShell().close();
                    if (cntPassed == regressionBounds.length) passed = true;
                    if (cntClosed == regressionBounds.length) {
                      shell.close();
                      return;
                    }
                  }
                });
            event.browser = browser;
            index++;
          }
        });
    shell.open();
    browser.setUrl(url);

    boolean timeout = runLoopTimer(display, shell, 600);
    if (timeout) passed = false;
    display.dispose();
    return passed;
  }