| /* |
| * 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. |
| } |
| } |
| } |