xamarin-macios/tests/monotouch-test/SafariServices/ReadingListTest.cs

79 строки
2.3 KiB
C#

//
// Unit tests for SSReadingList
//
// Authors:
// Sebastien Pouliot <sebastien@xamarin.com>
//
// Copyright 2013 Xamarin Inc. All rights reserved.
//
#if !__TVOS__ && !__WATCHOS__ && !MONOMAC
using System;
using System.IO;
using Foundation;
using SafariServices;
using UIKit;
using ObjCRuntime;
using NUnit.Framework;
namespace MonoTouchFixtures.SafariServices {
[TestFixture]
[Preserve (AllMembers = true)]
public class ReadingListTest {
string local_file = Path.Combine (NSBundle.MainBundle.ResourcePath, "Hand.wav");
[Test]
[Ignore ("This test adds two entries every time it's executed to the global reading list in Safari. For people who use their reading lists this becomes slightly annoying.")]
public void DefaultReadingList ()
{
TestRuntime.AssertSystemVersion (PlatformName.iOS, 7, 0, throwIfOtherPlatform: false);
NSError error;
using (var http = new NSUrl ("http://www.xamarin.com"))
using (var local = new NSUrl (local_file, false))
using (var rl = SSReadingList.DefaultReadingList) {
Assert.True (rl.Add (http, "title", "preview text", out error), "Add-1");
Assert.Null (error, "error-1");
Assert.True (rl.Add (http, null, null, out error), "Add-2");
Assert.Null (error, "error-2");
Assert.False (rl.Add (local, null, null, out error), "Add-3");
Assert.That (error.Domain, Is.EqualTo ((string) SSReadingList.ErrorDomain), "Domain");
Assert.That (error.Code, Is.EqualTo ((nint) (int) SSReadingListError.UrlSchemeNotAllowed), "Code");
try {
throw new NSErrorException (error);
}
catch (NSErrorException ns) {
Assert.That (ns.Error.Code, Is.EqualTo (error.Code), "Code");
Assert.That (ns.Error.Domain, Is.EqualTo (error.Domain), "Domain");
Assert.That (ns.Message, Is.EqualTo (error.Description), "Message");
}
catch (Exception e) {
Assert.Fail (e.ToString ());
}
}
}
[Test]
public void SupportsUrl ()
{
TestRuntime.AssertSystemVersion (PlatformName.iOS, 7, 0, throwIfOtherPlatform: false);
Assert.False (SSReadingList.SupportsUrl (null), "null");
using (var http = new NSUrl ("http://www.xamarin.com"))
Assert.True (SSReadingList.SupportsUrl (http), "http");
using (var local = new NSUrl (local_file, false))
Assert.False (SSReadingList.SupportsUrl (local), "local");
}
}
}
#endif // !__TVOS__ && !__WATCHOS__