blob: f9f753bf67113b61eca8d78f323dd608668dee09 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2016 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ua.tests.help.webapp;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.eclipse.help.internal.webapp.data.UrlUtil;
import org.junit.Test;
/**
* Tests for the code which identifies the browser kind and version based upon the
* User-Agent attribute of the HTTP request header. Each test uses a string derived
* from a specific browser.
*/
public class BrowserIdentificationTest {
@Test
public void testIE_6() {
final String agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)";
assertTrue(UrlUtil.isIE(agent));
assertFalse(UrlUtil.isMozilla(agent));
assertFalse(UrlUtil.isOpera(agent));
assertFalse(UrlUtil.isKonqueror(agent));
assertFalse(UrlUtil.isSafari(agent));
assertFalse(UrlUtil.isGecko(agent));
assertEquals("6.0", UrlUtil.getIEVersion(agent));
assertTrue(UrlUtil.isAdvanced(agent));
}
@Test
public void testWindowsFirefox_1_8() {
final String agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.8) Gecko/20061025 (CK-IBM) Firefox/1.5.0.8";
assertFalse(UrlUtil.isIE(agent));
assertTrue(UrlUtil.isMozilla(agent));
assertFalse(UrlUtil.isOpera(agent));
assertFalse(UrlUtil.isKonqueror(agent));
assertFalse(UrlUtil.isSafari(agent));
assertTrue(UrlUtil.isGecko(agent));
assertEquals("1.8.0.8", UrlUtil.getMozillaVersion(agent));
assertTrue(UrlUtil.isAdvanced(agent));
}
@Test
public void testGTKFirefox_1_4() {
final String agent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030922";
assertFalse(UrlUtil.isIE(agent));
assertTrue(UrlUtil.isMozilla(agent));
assertFalse(UrlUtil.isOpera(agent));
assertFalse(UrlUtil.isKonqueror(agent));
assertFalse(UrlUtil.isSafari(agent));
assertTrue(UrlUtil.isGecko(agent));
assertEquals("1.4", UrlUtil.getMozillaVersion(agent));
assertTrue(UrlUtil.isAdvanced(agent));
}
@Test
public void testGTKKonqueror_3_1() {
final String agent = "Mozilla/5.0 (compatible; Konqueror/3.1; Linux)";
assertFalse(UrlUtil.isIE(agent));
assertTrue(UrlUtil.isMozilla(agent));
assertFalse(UrlUtil.isOpera(agent));
assertTrue(UrlUtil.isKonqueror(agent));
assertFalse(UrlUtil.isSafari(agent));
assertFalse(UrlUtil.isGecko(agent));
assertFalse(UrlUtil.isAdvanced(agent));
}
@Test
public void testMacMozilla1_7_3 () {
final String agent = "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.3) Gecko/20040910";
assertFalse(UrlUtil.isIE(agent));
assertTrue(UrlUtil.isMozilla(agent));
assertFalse(UrlUtil.isOpera(agent));
assertFalse(UrlUtil.isKonqueror(agent));
assertFalse(UrlUtil.isSafari(agent));
assertTrue(UrlUtil.isGecko(agent));
assertEquals("1.7.3", UrlUtil.getMozillaVersion(agent));
assertTrue(UrlUtil.isAdvanced(agent));
}
@Test
public void testSafari_417_8 () {
final String agent = "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/417.9 (KHTML, like Gecko) Safari/417.8";
assertFalse(UrlUtil.isIE(agent));
assertTrue(UrlUtil.isMozilla(agent));
assertFalse(UrlUtil.isOpera(agent));
assertFalse(UrlUtil.isKonqueror(agent));
assertTrue(UrlUtil.isSafari(agent));
assertFalse(UrlUtil.isGecko(agent));
assertEquals("417", UrlUtil.getSafariVersion(agent));
assertTrue(UrlUtil.isAdvanced(agent));
}
@Test
public void testOpera_9() {
final String agent = "Opera/9.02 (Windows NT 5.1; U; en)";
assertFalse(UrlUtil.isIE(agent));
assertFalse(UrlUtil.isMozilla(agent));
assertTrue(UrlUtil.isOpera(agent));
assertFalse(UrlUtil.isKonqueror(agent));
assertFalse(UrlUtil.isSafari(agent));
assertFalse(UrlUtil.isGecko(agent));
assertEquals("9.02", UrlUtil.getOperaVersion(agent));
assertTrue(UrlUtil.isAdvanced(agent));
}
@Test
public void testOpera_9_IEMode () {
final String agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.02";
assertTrue(UrlUtil.isIE(agent));
assertFalse(UrlUtil.isMozilla(agent));
assertTrue(UrlUtil.isOpera(agent));
assertFalse(UrlUtil.isKonqueror(agent));
assertFalse(UrlUtil.isSafari(agent));
assertFalse(UrlUtil.isGecko(agent));
assertEquals("6.0", UrlUtil.getIEVersion(agent));
assertTrue(UrlUtil.isAdvanced(agent));
}
@Test
public void testXulRunnerOnUbuntu() {
final String agent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko";
assertFalse(UrlUtil.isIE(agent));
assertTrue(UrlUtil.isMozilla(agent));
assertFalse(UrlUtil.isOpera(agent));
assertFalse(UrlUtil.isKonqueror(agent));
assertFalse(UrlUtil.isSafari(agent));
assertTrue(UrlUtil.isGecko(agent));
assertEquals("1.9", UrlUtil.getMozillaVersion(agent));
assertTrue(UrlUtil.isAdvanced(agent));
}
@Test
public void testXulRunnerTruncated() {
final String agent = "Mozilla/5.0 (X11; U; Linux i686;";
assertFalse(UrlUtil.isIE(agent));
assertTrue(UrlUtil.isMozilla(agent));
assertFalse(UrlUtil.isOpera(agent));
assertFalse(UrlUtil.isKonqueror(agent));
assertFalse(UrlUtil.isSafari(agent));
assertFalse(UrlUtil.isGecko(agent));
assertTrue(UrlUtil.isAdvanced(agent));
}
@Test
public void testFirefox3() {
final String agent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.13) Gecko/2008031";
assertFalse(UrlUtil.isIE(agent));
assertTrue(UrlUtil.isMozilla(agent));
assertFalse(UrlUtil.isOpera(agent));
assertFalse(UrlUtil.isKonqueror(agent));
assertFalse(UrlUtil.isSafari(agent));
assertTrue(UrlUtil.isGecko(agent));
assertEquals("1.8.1.13", UrlUtil.getMozillaVersion(agent));
assertTrue(UrlUtil.isAdvanced(agent));
}
}