csharpfftfsharpintegrationinterpolationlinear-algebramathdifferentiationmatrixnumericsrandomregressionstatisticsmathnet
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
4.3 KiB
126 lines
4.3 KiB
// Copyright 2005-2009 Gallio Project - http://www.gallio.org/
|
|
// Portions Copyright 2000-2004 Jonathan de Halleux
|
|
//
|
|
// 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 System.Text.RegularExpressions;
|
|
using Gallio.Framework;
|
|
using Gallio.Model.Logging;
|
|
using MbUnit.Framework;
|
|
using Gallio.Model;
|
|
using WatiN.Core;
|
|
using WatiN.Core.Interfaces;
|
|
using WatiN.Core.Logging;
|
|
|
|
namespace MbUnit.Samples
|
|
{
|
|
/// <summary>
|
|
/// This is a simple demonstration of integration opportunities between
|
|
/// MbUnit v3 and WatiN.
|
|
/// </summary>
|
|
[TestFixture]
|
|
public class WatiNDemo
|
|
{
|
|
private IE ie;
|
|
|
|
[SetUp]
|
|
public void CreateBrowser()
|
|
{
|
|
ie = new IE();
|
|
|
|
Logger.LogWriter = new WatiNStreamLogger();
|
|
}
|
|
|
|
[TearDown]
|
|
public void DisposeBrowser()
|
|
{
|
|
if (TestContext.CurrentContext.Outcome.Status == TestStatus.Failed)
|
|
Snapshot("Final screen when failure occurred.", TestLog.Failures);
|
|
|
|
if (ie != null)
|
|
ie.Dispose();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Demonstrates capturing a screenshot on failure automatically. This test does
|
|
/// not contain any special logic for caputing the screenshot; it happens as part
|
|
/// of the TearDown phase when it detects that the test has failed.
|
|
/// </summary>
|
|
[Test]
|
|
public void DemoCaptureOnFailure()
|
|
{
|
|
using (TestLog.BeginSection("Go to Google, enter MbUnit as a search term and click I'm Feeling Lucky"))
|
|
{
|
|
ie.GoTo("http://www.google.com");
|
|
|
|
ie.TextField(Find.ByName("q")).TypeText("MbUnit");
|
|
ie.Button(Find.ByName("btnI")).Click();
|
|
}
|
|
|
|
// Of course this is ridiculous, we'll be on the MbUnit homepage...
|
|
Assert.IsTrue(ie.ContainsText("NUnit"), "Expected to find NUnit on the page.");
|
|
}
|
|
|
|
/// <summary>
|
|
/// Demonstrates capturing discretionary screenshots at will and labeling them.
|
|
/// Unlike <see cref="DemoCaptureOnFailure" /> this test does not capture an
|
|
/// extra automatic screenshot on termination because the TearDown phase can
|
|
/// detect that the test has passed so it does not bother to capture an image.
|
|
/// </summary>
|
|
[Test]
|
|
public void DemoNoCaptureOnSuccess()
|
|
{
|
|
using (TestLog.BeginSection("Go to Google, enter MbUnit as a search term and click I'm Feeling Lucky"))
|
|
{
|
|
ie.GoTo("http://www.google.com");
|
|
|
|
ie.TextField(Find.ByName("q")).TypeText("MbUnit");
|
|
ie.Button(Find.ByName("btnI")).Click();
|
|
}
|
|
|
|
using (TestLog.BeginSection("Click on About."))
|
|
{
|
|
Assert.IsTrue(ie.ContainsText("MbUnit"));
|
|
ie.Link(Find.ByUrl(new Regex(@"About\.aspx"))).Click();
|
|
}
|
|
|
|
Snapshot("About the MbUnit project.");
|
|
}
|
|
|
|
private void Snapshot(string caption)
|
|
{
|
|
Snapshot(caption, TestLog.Default);
|
|
}
|
|
|
|
private void Snapshot(string caption, TestLogStreamWriter logStreamWriter)
|
|
{
|
|
using (logStreamWriter.BeginSection(caption))
|
|
{
|
|
logStreamWriter.Write("Url: ");
|
|
using (logStreamWriter.BeginMarker(Marker.Link(ie.Url)))
|
|
logStreamWriter.Write(ie.Url);
|
|
logStreamWriter.WriteLine();
|
|
|
|
logStreamWriter.EmbedImage(caption + ".png", new CaptureWebPage(ie).CaptureWebPageImage(false, false, 100));
|
|
}
|
|
}
|
|
|
|
private class WatiNStreamLogger : ILogWriter
|
|
{
|
|
public void LogAction(string message)
|
|
{
|
|
TestLog.WriteLine(message);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|