blob: 39e3a522297ff236633e81f6a3e57dce82d19d63 [file] [log] [blame]
/*
* Copyright 2009 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.gwt.junit;
import com.google.gwt.junit.RunStyleSelenium.RCSelenium;
import junit.framework.TestCase;
/**
* Tests of {@link RunStyleSelenium}.
*/
public class RunStyleSeleniumTest extends TestCase {
public void testRCSeleniumGetSpecifier() {
RCSelenium rcs = new RCSelenium("localhost:4444/*firefox");
assertEquals("localhost:4444/*firefox", rcs.getSpecifier());
}
public void testRCSeleniumParseSpecifier() {
// Standard selenium targets.
assertRcSeleniumComponents("localhost:4444/*firefox", "localhost", 4444,
"*firefox");
assertRcSeleniumComponents("localhost:4444/*iexplore", "localhost", 4444,
"*iexplore");
assertRcSeleniumComponents("localhost:4444/*googlechrome", "localhost",
4444, "*googlechrome");
// Using a remote host.
assertRcSeleniumComponents("gwt-remote-host:1234/*firefox",
"gwt-remote-host", 1234, "*firefox");
assertRcSeleniumComponents("gwt.remote.google.com:4444/*firefox",
"gwt.remote.google.com", 4444, "*firefox");
assertRcSeleniumComponents("127.0.0.1:4444/*firefox", "127.0.0.1", 4444,
"*firefox");
// Specifying path to executable.
assertRcSeleniumComponents("localhost:4444/*firefox /usr/bin/firefox",
"localhost", 4444, "*firefox /usr/bin/firefox");
assertRcSeleniumComponents(
"localhost:4444/*iexplore c:\\Program Files\\iexplore.exe",
"localhost", 4444, "*iexplore c:\\Program Files\\iexplore.exe");
assertRcSeleniumComponents("localhost:4444/madeup /usr/bin/madeup",
"localhost", 4444, "madeup /usr/bin/madeup");
assertRcSeleniumComponents(
"localhost:4444/complexpath c:\\Complex(Path)~!@*&^%$#\\to\\browser.cmd",
"localhost", 4444,
"complexpath c:\\Complex(Path)~!@*&^%$#\\to\\browser.cmd");
}
public void testRCSeleniumParseSpecifierIllegal() {
// Invalid host name.
assertRcSeleniumIllegalSpecifier(":4444/*firefox");
assertRcSeleniumIllegalSpecifier("with space:4444/*firefox");
assertRcSeleniumIllegalSpecifier("front/slash:4444/*firefox");
// Invalid port.
assertRcSeleniumIllegalSpecifier("localhost:/*firefox");
assertRcSeleniumIllegalSpecifier("localhost:abc/*firefox");
// Invalid browser.
assertRcSeleniumIllegalSpecifier("localhost:4444");
assertRcSeleniumIllegalSpecifier("localhost:4444/");
}
/**
* Assert that the {@link RCSelenium} created by the given specifier is parsed
* to the specified browser, host, and port.
*
* @param specifier the remote specifier
* @param host the expected host
* @param port the expected port
* @param browser the expected browser
*/
private void assertRcSeleniumComponents(String specifier, String host,
int port, String browser) {
RCSelenium rcs = new RCSelenium(specifier);
assertEquals(host, rcs.host);
assertEquals(port, rcs.port);
assertEquals(browser, rcs.browser);
}
/**
* Assert that the specifier is invalid.
*
* @param specifier the specifier.
*/
private void assertRcSeleniumIllegalSpecifier(String specifier) {
try {
new RCSelenium(specifier);
fail("Expected IllegalArgumentException");
} catch (IllegalArgumentException e) {
// expected.
}
}
}