package com.opera.core.systems;

import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

import com.opera.core.systems.settings.OperaDriverSettings;

public class OperaDriverTest extends TestBase
{
  // Replace the TestBase setup and teardown so that we don't launch opera
  @BeforeClass
  public static void setUpBeforeClass() throws Exception {}
  @AfterClass
  public static void tearDownAfterClass() throws Exception {}

  @Test
  public void testWithoutSettingsObject()
  {
    driver = new TestOperaDriver();

    Assert.assertNotNull(driver);

    driver.shutdown();
  }

  @Test
  public void testDefaultWindowCount()
  {
    driver = new TestOperaDriver();
    Assert.assertTrue(driver.getWindowCount() == 1);
  }

  @Test
  public void testGetWindowHandle()
  {
    driver.get("http://t/core/standards/dom0/link/pathname/002.html");
    Assert.assertEquals("URL with explicit pathname and hash", driver.getWindowHandle());
  }

  @Test
  public void testGetTitle()
  {
    Assert.assertEquals("URL with explicit pathname and hash", driver.getTitle());
  }

  @Test
  public void testGetText()
  {
    driver.get("http://t/core/standards/quotes/none.html");
    Assert.assertEquals("you should see nothing below", driver.findElementByTagName("body").getText().trim());
  }

  @Test
  public void testGetURL()
  {
    driver.get("www.ebay.co.uk");
    Assert.assertTrue(driver.getCurrentUrl().indexOf("www.ebay.co.uk") > 0);
  }

  @Test
  public void testGetURL2()
  {
    driver.get("www.nyt.com", 15000);
    Assert.assertTrue(driver.getCurrentUrl().indexOf("www.nytimes.com") > 0);
  }

  @Test
  public void testGetVersion() throws Exception {
    String version = driver.getVersion();
    Assert.assertNotNull(version);
    Assert.assertNotSame("(Unknown)", version);
  }

  @Test
  public void testOperaDriverShutdown()
  {
    // leave with a fast loading page
    driver.get("about:blank");
    driver.shutdown();
  }

  @Test
  public void testNullOperaArguments() throws Exception {
    OperaDriverSettings settings = new OperaDriverSettings();
    settings.setOperaBinaryArguments(null);

    driver = new TestOperaDriver(settings);
    Assert.assertNotNull(driver);
    driver.shutdown();
  }
}

@@ -616,32 +616,323 @@
 hutdown();%0A  %7D%0A%0A
+  @Test%0A  public void testNullOperaArguments() throws Exception %7B%0A    OperaDriverSettings settings = new OperaDriverSettings();%0A    settings.setOperaBinaryArguments(null);%0A%0A    OperaDriver driver = new TestOperaDriver(settings);%0A    Assert.assertNotNull(driver);%0A    driver.shutdown();%0A  %7D%0A%0A
   @Test%0A  public
@@ -1048,17 +1048,17 @@
 Count() 
-=
+%3E
 = 1);%0A  
@@ -2274,286 +2274,7 @@
 %0A  %7D
-%0A%0A  @Test%0A  public void testNullOperaArguments() throws Exception %7B%0A    OperaDriverSettings settings = new OperaDriverSettings();%0A    settings.setOperaBinaryArguments(null);%0A%0A    driver = new TestOperaDriver(settings);%0A    Assert.assertNotNull(driver);%0A    driver.shutdown();%0A  %7D
 %0A%7D%0A

Fix OperaDriver tests