| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- //
- // System.Web.Hosting.ApplicationHost.cs
- //
- // Author:
- // Miguel de Icaza ([email protected])
- //
- //
- // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
- //
- // Permission is hereby granted, free of charge, to any person obtaining
- // a copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to
- // permit persons to whom the Software is furnished to do so, subject to
- // the following conditions:
- //
- // The above copyright notice and this permission notice shall be
- // included in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- //
- using System;
- using System.Runtime.Serialization;
- using System.IO;
- using System.Web.Hosting;
- using NUnit.Framework;
- using System.Web;
- namespace MonoTests.System.Web.Hosting {
- public class MBR : MarshalByRefObject {
- public string GetDomainName ()
- {
- return AppDomain.CurrentDomain.FriendlyName;
- }
- public AppDomain GetDomain ()
- {
- return AppDomain.CurrentDomain;
- }
- }
- [Serializable]
- public class MySerializable {
- public string GetDomainName ()
- {
- return AppDomain.CurrentDomain.FriendlyName;
- }
- }
-
- [TestFixture]
- public class ApplicationHostTest {
- [SetUp]
- public void Setup ()
- {
- try {
- //
- // Only needed in Windows, where we need to have a bin/ASSEMBLY.DLL
- //
- string p = typeof (ApplicationHostTest).Assembly.Location;
- try {
- Directory.Delete ("bin", true);
- } catch {}
- try {
- Directory.CreateDirectory ("bin");
- } catch {}
- string fn = Path.GetFileName (p);
- File.Copy (p, Path.Combine ("bin", fn));
- } catch {}
- }
- [TearDown] public void Shutdown ()
- {
- try {
- Directory.Delete ("bin", true);
- } catch {}
- }
-
- [Test][ExpectedException (typeof (NullReferenceException))]
- public void ConstructorTestNull ()
- {
- ApplicationHost.CreateApplicationHost (null, null, null);
- }
- [Test]
- [ExpectedException (typeof (ArgumentException))]
- public void ConstructorTestNull2 ()
- {
- ApplicationHost.CreateApplicationHost (null, "/app", ".");
- }
- [Test]
- [ExpectedException (typeof (ArgumentNullException))]
- public void ConstructorTestNull3 ()
- {
- ApplicationHost.CreateApplicationHost (typeof (MBR), null, ".");
- }
- [Test][ExpectedException (typeof (NullReferenceException))]
- public void ConstructorTestNull4 ()
- {
- ApplicationHost.CreateApplicationHost (typeof (MBR), "/app", null);
- }
- [Test]
- [ExpectedException(typeof(SerializationException))]
- #if TARGET_JVM //System.Security.Policy.Evidence not implemented
- [Category ("NotWorking")]
- #endif
- public void Constructor_PlainType ()
- {
- ApplicationHost.CreateApplicationHost (typeof (ApplicationHostTest), "/app", Environment.CurrentDirectory);
- }
- [Test]
- public void Constructor_SerializableType ()
- {
- object o = ApplicationHost.CreateApplicationHost (typeof (MySerializable), "/app", Environment.CurrentDirectory);
- Assert.AreEqual (typeof (MySerializable), o.GetType (), "C2");
- MySerializable m = (MySerializable) o;
- Assert.AreEqual (m.GetDomainName (), AppDomain.CurrentDomain.FriendlyName, "C4");
- }
- static void p (string s, object x)
- {
- Console.WriteLine ("{0} {1}", s, x);
- }
-
- [Test]
- [Category ("NotDotNet")] // D2 and D3 asserts will fail in windows on because file system environment
- public void ConstructorTest ()
- {
- object o = ApplicationHost.CreateApplicationHost (typeof (MBR), "/app", Environment.CurrentDirectory);
- Assert.AreEqual (typeof (MBR), o.GetType (), "C5");
- MBR m = (MBR) o;
- Assert.AreEqual (true, m.GetDomainName () != AppDomain.CurrentDomain.FriendlyName);
- AppDomain other = m.GetDomain ();
- AppDomainSetup setup = other.SetupInformation;
- string tb = Environment.CurrentDirectory;
- if (tb[tb.Length - 1] == Path.DirectorySeparatorChar)
- tb = tb.Substring (0, tb.Length - 1);
- // Need to fix an issue in AppDomainSetup
- // Assert.AreEqual (tb + "/", setup.ApplicationBase, "D1");
-
- p ("AppDomain's Applicationname is: ", setup.ApplicationName);
- Assert.AreEqual (null, setup.CachePath, "D2");
- Assert.AreEqual (tb + Path.DirectorySeparatorChar + "web.config", setup.ConfigurationFile, "D3");
- Assert.AreEqual (false, setup.DisallowBindingRedirects, "D4");
- Assert.AreEqual (true, setup.DisallowCodeDownload, "D5");
- Assert.AreEqual (false, setup.DisallowPublisherPolicy, "D6");
- // Disabling D7 test, as we set it there to avoid locking in sys.web.compilation
- // Assert.AreEqual (null, setup.DynamicBase, "D7");
- Assert.AreEqual (null, setup.LicenseFile, "D8");
- //Assert.AreEqual (LoaderOptimization.NotSpecified, setup.LoaderOptimization);
- p ("LoaderOptimization is: ", setup.LoaderOptimization);
- Assert.AreEqual ("Bin;bin", setup.PrivateBinPath, "D9");
- Assert.AreEqual (setup.PrivateBinPathProbe, "*", "D10");
- p ("ShadowCopyDirs: ", setup.ShadowCopyDirectories);
- Assert.AreEqual (true, setup.ShadowCopyDirectories.EndsWith ("bin"), "D11");
- Assert.AreEqual (false, setup.ShadowCopyDirectories.StartsWith ("file:"), "D12");
- Assert.AreEqual ("true", setup.ShadowCopyFiles, "D13");
- p ("ApsInstal", HttpRuntime.AspInstallDirectory);
- }
- }
-
- }
|