Ejemplo n.º 1
0
            public async Task FileWritable()
            {
                if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
                {
                    Assert.Ignore("OSX doesn't support FileSystemWatcher");
                }

                var root = Path.GetTempPath();
                var file = Path.Combine(root, "index.html");

                File.WriteAllText(file, Resources.Index);

                using var server = new TestWebServer();
                server
                .WithStaticFolder("/", root, false)
                .Start();

                var remoteFile = await server.Client.GetStringAsync(UrlPath.Root);

                File.WriteAllText(file, Resources.SubIndex);

                var remoteUpdatedFile = await server.Client.GetStringAsync(UrlPath.Root);

                File.WriteAllText(file, nameof(WebServer));

                Assert.AreEqual(Resources.Index, remoteFile);
                Assert.AreEqual(Resources.SubIndex, remoteUpdatedFile);
            }
            public async Task FileWritable()
            {
                var root = Path.GetTempPath();
                var file = Path.Combine(root, "index.html");

                File.WriteAllText(file, Resources.Index);

                using (var server = new TestWebServer())
                {
                    server
                    .WithStaticFolder("/", root, false)
                    .Start();

                    var remoteFile = await server.Client.GetStringAsync(UrlPath.Root);

                    File.WriteAllText(file, Resources.SubIndex);

                    var remoteUpdatedFile = await server.Client.GetStringAsync(UrlPath.Root);

                    File.WriteAllText(file, nameof(WebServer));

                    Assert.AreEqual(Resources.Index, remoteFile);
                    Assert.AreEqual(Resources.SubIndex, remoteUpdatedFile);
                }
            }
Ejemplo n.º 3
0
        public void AddModule_ReturnsValidInstance()
        {
            using var webserver = new TestWebServer();
            webserver.WithCors();

            Assert.AreEqual(1, webserver.Modules.Count);
        }
Ejemplo n.º 4
0
        public static void SendPOST()
        {
            var ss = new WebServerSettings()
            {
                Port   = 9090,
                UseSSL = false,
                UseBasicAuthorization = false
            };
            var rs = new RequestSettings()
            {
                ServerAddress         = "localhost:9090",
                TimeoutMSec           = 5000,
                UseSSL                = false,
                UseBasicAuthorization = false,
                UserId                = null,
                Password              = null
            };

            using (var server = new TestWebServer())
            {
                server.Settings = ss;
                server.Start();

                var req = new TestPOSTRequest(rs);
                var ok  = req.Process();
                if (!ok)
                {
                    throw new ApplicationException("SendPOST() failed. LastError=" + req.LastError);
                }
            }
        }
Ejemplo n.º 5
0
 public void SetupInMemoryWebServer_ReturnsValidInstance()
 {
     using (var webserver = new TestWebServer())
     {
         Assert.IsNotNull(webserver);
     }
 }
Ejemplo n.º 6
0
        public static void SendPOST_AuthFailed()
        {
            var ss = new WebServerSettings()
            {
                Port   = 9090,
                UseSSL = false,
                UseBasicAuthorization = true
            };
            var rs = new RequestSettings()
            {
                ServerAddress         = "localhost:9090",
                TimeoutMSec           = 5000,
                UseSSL                = false,
                UseBasicAuthorization = true,
                UserId                = "test",
                Password              = "******"
            };

            using (var server = new TestWebServer())
            {
                server.Settings = ss;
                server.Start();

                var req = new TestPOSTRequest(rs);
                var ok  = req.Process();
                if (ok)
                {
                    throw new ApplicationException("SendPOST()_AuthFailed failed");
                }
                if (string.IsNullOrEmpty(req.LastError))
                {
                    throw new ApplicationException("SendPOST()_AuthFailed failed");
                }
            }
        }
Ejemplo n.º 7
0
        private static void Initialize()
        {
            TestWebServer.EnsureTestAssembly();

            TestFramework.EnsureCorrectVersion(TestWebServer.GetDependencyContext());

            ValidateStartup();

            TestCounter.SetLicenseData(
                ServerTestConfiguration.Global.Licenses,
                DateTime.UtcNow,
                DateTime.ParseExact(TestFramework.ReleaseDate, "yyyy-MM-dd", CultureInfo.InvariantCulture),
                TestWebServer.TestAssemblyName);

            PluginsContainer.LoadPlugins(TestWebServer.GetDependencyContext());

            var serviceCollection = TestWebServer.GetInitialServiceCollection();

            PrepareStartup(serviceCollection);
            PrepareServices(serviceCollection);

            PrepareApplicationAndRouting();

            initialized = true;
        }
Ejemplo n.º 8
0
        public void SetSessionManager_ReturnsValidInstance()
        {
            using var webserver      = new TestWebServer();
            webserver.SessionManager = new LocalSessionManager();

            Assert.NotNull(webserver.SessionManager);
        }
        public Task FileSystemProvider_Handle_PathWithEscapedString()
        {
            const string ok = "Content";

            var tempFolder             = $"Folder {DateTime.Now.Ticks}";
            var tempPathWithWhitespace = Path.Combine(Path.GetTempPath(), tempFolder);

            Directory.CreateDirectory(tempPathWithWhitespace);
            var tempFile = Path.Combine(tempPathWithWhitespace, "index.html");

            File.WriteAllText(tempFile, ok);

            void Configure(IWebServer server) => server
            .WithStaticFolder("/", Path.GetTempPath(), true);

            async Task Use(HttpClient client)
            {
                using var response = await client.GetAsync($"/{tempFolder}").ConfigureAwait(false);

                var responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                Assert.AreEqual(ok, responseString);
            }

            return(TestWebServer.UseAsync(Configure, Use));
        }
Ejemplo n.º 10
0
        static TestApplication()
        {
            Sync = new object();

            NullHandler = c => Task.CompletedTask;

            TestWebServer.TryFindTestAssembly();
        }
 public void Init()
 {
     server = new TestWebServer();
     server.AddWebService(new HttpRequestParser());
     test = new TestTask(server)
     {
         CurrentStage     = ServerStage.ReadRequest,
         TerminationStage = ServerStage.ReadRequest,
     };
 }
Ejemplo n.º 12
0
        public void SetSessionManagerToNull_ReturnsValidInstance()
        {
            using (var webserver = new TestWebServer())
            {
                webserver.SessionManager = new LocalSessionManager();
                webserver.SessionManager = null;

                Assert.IsNull(webserver.SessionManager);
            }
        }
Ejemplo n.º 13
0
 public void Init()
 {
     server = new TestWebServer();
     server.AddWebService(new HttpSender());
     test = new TestTask(server)
     {
         CurrentStage     = ServerStage.SendResponse,
         TerminationStage = ServerStage.SendResponse,
     };
 }
Ejemplo n.º 14
0
 public void Init()
 {
     server = new TestWebServer();
     server.AddWebService(new HttpHeaderSpecialAction());
     test = new TestTask(server)
     {
         CurrentStage     = ServerStage.ParseRequest,
         TerminationStage = ServerStage.ParseRequest,
     };
 }
Ejemplo n.º 15
0
        public App()
        {
            AppDomain.CurrentDomain.AssemblyResolve += Loader.FindAssemblies;

            _webServer = new TestWebServer(WebServerPort, WebServerVDir);
            _webServer.Start();
            _webServer.ExtractResource("jQueryBuddy.Resources.WebServer.Web.Config", "web.config");
            _webServer.ExtractResource("jQueryBuddy.Resources.Templates.InstantHelpStyles.css", "InstantHelpStyles.css");
            _webServer.ExtractResource("jQueryBuddy.Resources.Templates.JavascriptDump.js", "JavascriptDump.js");
        }
Ejemplo n.º 16
0
        public void TestGetAddedCookies()
        {
            var server = new TestWebServer();
            var test   = new TestTask(server);

            test.Task.Request.Cookie.AddedCookies.Add(
                "test1",
                new MaxLib.WebServer.HttpCookie.Cookie("test2", "test3"));
            var added = test.GetAddedCookies().ToArray();

            Assert.AreEqual(1, added.Length);
            Assert.AreEqual("test1", added[0].Item1);
            Assert.AreEqual("test2", added[0].Item2.NameString);
            Assert.AreEqual("test3", added[0].Item2.ValueString);
        }
        public async Task Should_return_200_OK_and_a_status_message()
        {
            var userId = "1234";

            using (var webServer = new TestWebServer())
                using (var client = webServer.GetClient(userId))
                {
                    var response = await client.GetAsync($"/api/status");

                    var content = await response.GetApiResponseDataAsync();

                    response.StatusCode.ShouldBe(HttpStatusCode.OK);

                    content.ShouldContain("Status is 'Up' at");
                }
        }
Ejemplo n.º 18
0
        public Task OnHead_ResponseOK()
        {
            void Configure(IWebServer server) => server
            .OnHead(ctx => ctx.SendStringAsync(Ok, MimeType.PlainText, WebServer.DefaultEncoding));

            async Task Use(HttpClient client)
            {
                using var response = await client.HeadAsync("/").ConfigureAwait(false);

                Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
                var responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                Assert.AreEqual(Ok, responseString);
            }

            return(TestWebServer.UseAsync(Configure, Use));
        }
Ejemplo n.º 19
0
        public void SetUp()
        {
            WebServerUrl = Resources.GetServerAddress();
            if (_useTestWebServer)
            {
                var testWebServer = new TestWebServer(WebServerUrl);
                Server = testWebServer;
                Client = testWebServer.Client;
            }
            else
            {
                Server = new WebServer(WebServerUrl);
                Client = TestHttpClient.Create(WebServerUrl);
            }

            OnSetUp();
            Server.Start();
        }
Ejemplo n.º 20
0
        public Task OnPatch_ResponseOK()
        {
            void Configure(IWebServer server) => server
            .OnPatch(ctx => ctx.SendStringAsync(Ok, MimeType.PlainText, Encoding.UTF8));

            async Task Use(HttpClient client)
            {
                using (var response = await client.PatchAsync("/", null).ConfigureAwait(false))
                {
                    Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
                    var responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                    Assert.AreEqual(Ok, responseString);
                }
            }

            return(TestWebServer.UseAsync(Configure, Use));
        }
Ejemplo n.º 21
0
        public async Task RunsServerAndRequestData_ReturnsValidData()
        {
            using var server = new TestWebServer();
            server
            .OnAny(ctx => ctx.SendDataAsync(new Person {
                Name = nameof(Person)
            }))
            .Start();

            var data = await server.Client.GetStringAsync("/").ConfigureAwait(false);

            Assert.IsNotNull(data);

            var person = Json.Deserialize <Person>(data);

            Assert.IsNotNull(person);

            Assert.AreEqual(person.Name, nameof(Person));
        }
Ejemplo n.º 22
0
        public void Start()
        {
            _testDatabase = new TestDatabase(System.IO.File.ReadAllText(Helper.AssemblyDirectory + "\\ScutexService-CreateDbNG.sql"));

            clientWebServerPort  = TcpPortFinder.FindOpenTcpPortInRange(8100, 8200);
            _testClientWebServer = new TestWebServer(clientWebServerPort, @"/", Helper.AssemblyDirectory + @"\WebServices\Client\");
            ConfigFileWriter.CreateClientWebServiceConfig(_testDatabase.DatabaseName, _testDatabase.DatabaseFilePath);

            _testClientWebServer.Start();

            mgmtWebServerPort  = TcpPortFinder.FindOpenTcpPortInRange(8200, 8300);
            _testMgmtWebServer = new TestWebServer(mgmtWebServerPort, @"/", Helper.AssemblyDirectory + @"\WebServices\Mgmt\");
            ConfigFileWriter.CreateMgmtWebServiceConfig(_testDatabase.DatabaseName, _testDatabase.DatabaseFilePath);

            _testMgmtWebServer.Start();

            _testDatabase.DetachDatabase();

            _licenseHelper.SetupService(clientWebServerPort, mgmtWebServerPort);
        }
Ejemplo n.º 23
0
 public async Task TestUserAgentAsync()
 {
     using (TestWebServer server = new TestWebServer(false))
     {
         try
         {
             RegistryAuthenticator authenticator =
                 RegistryAuthenticator.FromAuthenticationMethod(
                     new AuthenticationHeaderValue("Bearer", "realm=\"" + server.GetAddressAndPort() + "\""),
                     registryEndpointRequestProperties,
                     new[] { new ProductInfoHeaderValue(new ProductHeaderValue("Competent-Agent")) });
             await authenticator.AuthenticatePushAsync(null).ConfigureAwait(false);
         }
         catch (RegistryAuthenticationFailedException)
         {
             // Doesn't matter if auth fails. We only examine what we sent.
         }
         Assert.That(server.GetInputRead(), Does.Contain("User-Agent: Competent-Agent"));
     }
 }
 public static void AssemblyCleanup()
 {
     TestWebServer.Dispose();
 }
 public static void AssemblyCleanup()
 {
     // Stop the OWIN testing HTTP server
     TestWebServer.Dispose();
 }
Ejemplo n.º 26
0
        static void Main(string[] args)
        {
            TestWebServer server = new TestWebServer();

            Console.ReadLine();
        }
Ejemplo n.º 27
0
        static TestApplication()
        {
            Sync = new object();

            TestWebServer.TryFindTestAssembly();
        }