big refactoring, and more
New routes, new juice flow, the tags on posts
This commit is contained in:
151
TestAPI/ServerTestCase.cs
Normal file
151
TestAPI/ServerTestCase.cs
Normal file
@ -0,0 +1,151 @@
|
||||
//
|
||||
// BlogUnitTest.cs
|
||||
//
|
||||
// Author:
|
||||
// Paul Schneider <paul@pschneider.fr>
|
||||
//
|
||||
// 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 <http://www.gnu.org/licenses/>.
|
||||
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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user