mirror of https://github.com/dahall/Vanara.git
61 lines
1.8 KiB
C#
61 lines
1.8 KiB
C#
using NUnit.Framework;
|
|
using System;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Runtime.InteropServices;
|
|
using System.Runtime.InteropServices.ComTypes;
|
|
using Vanara.InteropServices;
|
|
using static Vanara.PInvoke.Ole32;
|
|
using static Vanara.PInvoke.Url;
|
|
|
|
namespace Vanara.PInvoke.Tests
|
|
{
|
|
[TestFixture, Apartment(System.Threading.ApartmentState.STA)]
|
|
public class UrlTests
|
|
{
|
|
const string url = "http://docs.microsoft.com/";
|
|
private static readonly Guid FMTID_InternetSite = new Guid("000214a1-0000-0000-c000-000000000046");
|
|
|
|
[Test]
|
|
public void IUniformResourceLocatorTest()
|
|
{
|
|
using var tmp = new TempFile();
|
|
|
|
// WRite it out
|
|
var iUrl = new IUniformResourceLocator();
|
|
Assert.That(() => iUrl.SetUrl(url), Throws.Nothing);
|
|
IPersistFile ipf = null;
|
|
Assert.That(ipf = iUrl as IPersistFile, Is.Not.Null);
|
|
Assert.That(() => ipf.Save(tmp.FullName, false), Throws.Nothing);
|
|
|
|
// Validate file
|
|
var fi = new System.IO.FileInfo(tmp.FullName);
|
|
Assert.That(fi.Length, Is.GreaterThan(10));
|
|
|
|
// Read it back
|
|
var iUrl2 = new IUniformResourceLocator();
|
|
IPersistFile ipf2 = null;
|
|
Assert.That(ipf2 = iUrl2 as IPersistFile, Is.Not.Null);
|
|
Assert.That(() => ipf2.Load(tmp.FullName, 0), Throws.Nothing);
|
|
var url2 = string.Empty;
|
|
Assert.That(() => iUrl2.GetUrl(out url2), Throws.Nothing);
|
|
Assert.That(url2, Is.EqualTo(url));
|
|
|
|
// Open it
|
|
Assert.That(() => iUrl2.InvokeCommand(new URLINVOKECOMMANDINFO("open")), Throws.Nothing);
|
|
}
|
|
|
|
[Test]
|
|
public void InetIsOfflineTest()
|
|
{
|
|
Assert.That(InetIsOffline(), Is.False);
|
|
}
|
|
|
|
[Test]
|
|
public void TranslateURLTest()
|
|
{
|
|
Assert.That(TranslateURL(url, TRANSLATEURL_IN_FLAGS.TRANSLATEURL_FL_GUESS_PROTOCOL, out var newUrl), ResultIs.Successful);
|
|
Assert.That(url, Is.EqualTo(newUrl));
|
|
}
|
|
}
|
|
} |