// // BlogUnitTest.cs // // Author: // Paul Schneider // // Copyright (c) 2015 GNU GPL // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with this program. If not, see . using NUnit.Framework; using System; using Yavsc.Model.Blogs; using Yavsc.Controllers; using System.Web.Mvc; using System.Web.Security; using System.Web.Configuration; using System.Configuration; using System.IO; using System.Web.Http; using Mono.WebServer; using System.Net; using System.Web.Hosting; using Mono.Web.Util; using Mono.WebServer.Options; namespace Yavsc { [TestFixture ()] public class ServerTestCase { public string UserName { get; set; } public string Email { get; set; } public string Password { get; set; } AccountController accountController; public AccountController AccountController { get { return accountController; } } ApplicationServer WebAppServer; string defaultMembershipProvider = null; [Test] public virtual void Start() { // get the web config string physicalPath = @"/home/paul/workspace/totem/web/"; string physicalPathToConfig = physicalPath + "/Web.config"; ExeConfigurationFileMap exemap = new ExeConfigurationFileMap (); exemap.ExeConfigFilename = physicalPathToConfig ; Configuration config = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration (exemap, ConfigurationUserLevel.None); string basedir = AppDomain.CurrentDomain.BaseDirectory; string curdir = Directory.GetCurrentDirectory (); string dummyVirtualPath = "/"; int Port=8080; XSPWebSource websource=new XSPWebSource(IPAddress.Any,Port); WebAppServer=new ApplicationServer(websource,physicalPath); var broker = new XSPRequestBroker (); var host = new XSPApplicationHost (); host.RequestBroker = broker; host.Server = WebAppServer; broker.InitializeLifetimeService (); host.InitializeLifetimeService (); // ApplicationHost h = new XSPApplicationHost(); //"[[hostname:]port:]VPath:realpath" string cmdLine=Port+":/:"+physicalPath; WebAppServer.AddApplicationsFromCommandLine (cmdLine); WebAppServer.Broker = broker; WebAppServer.AppHost = host; // WebAppServer.AddApplicationsFromConfigFile (physicalPath+"/Web.config"); // WebConfigurationFileMap map = new WebConfigurationFileMap (); // map.VirtualDirectories.Add (dummyVirtualPath, new VirtualDirectoryMapping (physicalPath, true)); // TODO why not? Configuration configuration = WebConfigurationManager.OpenMappedWebConfiguration (map, dummyVirtualPath); // string da = (string)config.AppSettings.Settings ["DefaultAvatar"].Value; // MembershipSection s = config.GetSection ("system.web/membership") as MembershipSection; // defaultMembershipProvider = s.DefaultProvider; // ??? WebConfigurationManager.ConfigPath Configuration cfg = WebConfigurationManager.OpenWebConfiguration (dummyVirtualPath); // WebConfigurationManager.AppSettings.Clear (); // WebConfigurationManager.ConnectionStrings.Clear (); // var mbrssect = WebConfigurationManager.GetWebApplicationSection ("system.web/membership") as MembershipSection; // // mbrssect.Providers.Clear (); var syswebcfg = WebConfigurationManager.GetWebApplicationSection ("system.web") as ConfigurationSection; WebAppServer.Start (true,2000); // System.Threading.Thread.Sleep(30000); } [Test ()] public virtual void Register () { accountController = new AccountController (); ViewResult actionResult = accountController.Register ( new Yavsc.Model.RolesAndMembers.RegisterViewModel () { UserName = UserName, Email = Email, Password = "tpwd", ConfirmPassword = Password, IsApprouved = true }, "/testreturnurl") as ViewResult; Assert.AreSame ("",actionResult.ViewName); MembershipUser u = Membership.GetUser (UserName, false); Assert.NotNull (u); Assert.False (u.IsApproved); // TODO : check mail for test, // get the validation key from its body, // and use the accountController.Validate(username,key) u.IsApproved = true; Membership.UpdateUser (u); Assert.True (u.IsApproved); } [Test()] public virtual void Stop() { WebAppServer.Stop(); } public virtual void Unregister() { ViewResult actionResult = accountController.Unregister (UserName, true) as ViewResult; Assert.AreEqual (actionResult.ViewName, "Index"); } } }