blob: 87eb77a1432849d5d76f32c0c3c7879c23cf38e7 [file] [log] [blame]
/*
* Copyright 2011 Software Freedom Conservancy.
*
* 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.
*
*/
using NMock;
using NUnit.Framework;
using System;
using Selenium;
namespace ThoughtWorks.Selenium.UnitTests
{
/// <summary>
/// Summary description for DefaultSeleniumTestCase.
/// </summary>
[TestFixture]
public class DefaultSeleniumTest
{
private DefaultSelenium selenium;
private ICommandProcessor processor;
private Mock mockProcessor;
[SetUp]
public void SetupTest()
{
mockProcessor = new DynamicMock(typeof (ICommandProcessor));
processor = (ICommandProcessor) mockProcessor.MockInstance;
selenium = new DefaultSelenium(processor);
}
[TearDown]
public void TeardownTest()
{
mockProcessor.Verify();
}
[Test]
public void InstantiateSeleniumShouldWork()
{
Assert.AreSame(processor, selenium.Processor);
}
[Test]
public void StopSeleniumShouldWork()
{
mockProcessor.Expect("Stop");
selenium.Stop();
}
[Test]
public void ChooseCancelOnNextConfirmationShouldWork()
{
mockProcessor.ExpectAndReturn("DoCommand", "OK", new object[]{"chooseCancelOnNextConfirmation", new String[]{}});
selenium.ChooseCancelOnNextConfirmation();
}
[Test]
[ExpectedException(typeof(SeleniumException))]
public void ChooseCancelOnNextConfirmationFailsIfResultIsNotOK()
{
mockProcessor.ExpectAndThrow("DoCommand", new SeleniumException("Error"),
new object[]{"chooseCancelOnNextConfirmation", new String[]{}});
selenium.ChooseCancelOnNextConfirmation();
}
[Test]
public void ClickShouldWork()
{
string fieldname= "somefieldname";
mockProcessor.ExpectAndReturn("DoCommand", "OK", new object[] {"click", new string[]{fieldname}});
selenium.Click(fieldname);
}
[Test]
[ExpectedException (typeof(SeleniumException))]
public void ClickShouldFailWhenOKIsNotReturned()
{
string fieldname = "fieldname";
mockProcessor.ExpectAndThrow("DoCommand", new SeleniumException("Error"), new object[]{"click", new string[]{fieldname}});
selenium.Click(fieldname);
}
[Test]
public void VerifySelectedOptionsShouldWork()
{
string[] values = {"1","2","3","4","5","6"};
string fieldname = "fieldname";
mockProcessor.ExpectAndReturn("GetStringArray",new string[] {"1","2","3","4","5","6"}, new object[]{"getSelectOptions", new string[]{fieldname}} );
string[] actualResult = selenium.GetSelectOptions(fieldname);
Assert.AreEqual(new string[] {"1","2","3","4","5","6"}, actualResult);
}
[Test]
public void GetAllButtonsShouldWork()
{
string[] values = {"1","2","3","4","5","6"};
mockProcessor.ExpectAndReturn("GetStringArray",new string[] {"1","2","3","4","5","6"}, new object[]{"getAllButtons", new string[]{}} );
string[] actualResult = selenium.GetAllButtons();
Assert.AreEqual(new string[] {"1","2","3","4","5","6"}, actualResult);
}
[Test]
public void GetAllLinksShouldWork()
{
string[] values = {"1","2","3","4","5","6"};
mockProcessor.ExpectAndReturn("GetStringArray",new string[] {"1","2","3","4","5","6"}, new object[]{"getAllLinks", new string[]{}} );
string[] actualResult = selenium.GetAllLinks();
Assert.AreEqual(new string[] {"1","2","3","4","5","6"}, actualResult);
}
[Test]
public void GetAllFieldsShouldWork()
{
string[] values = {"1","2","3","4","5","6"};
mockProcessor.ExpectAndReturn("GetStringArray",new string[] {"1","2","3","4","5","6"}, new object[]{"getAllFields", new string[]{}} );
string[] actualResult = selenium.GetAllFields();
Assert.AreEqual(new string[] {"1","2","3","4","5","6"}, actualResult);
}
}
}