예제 #1
0
        public void ChangeAllFeatureProperties()
        {
            using (HttpClient client = ApiHttpClient.Create()) {
                var webserverFeature = Utils.GetFeature(client, HANDLERS_URL, null, null);
                Assert.NotNull(webserverFeature);

                AllowOverride(client, webserverFeature);
                TestScopedFeature(client, webserverFeature);

                Sites.EnsureNoSite(client, TEST_SITE_NAME);
                var site = Sites.CreateSite(client, TEST_SITE_NAME, Utils.GetAvailablePort(), Sites.TEST_SITE_PATH);
                Assert.NotNull(site);
                try {
                    var siteFeature = Utils.GetFeature(client, HANDLERS_URL, site.Value <string>("name"), "/");
                    Assert.NotNull(siteFeature);

                    AllowOverride(client, siteFeature);
                    TestScopedFeature(client, siteFeature);

                    client.Delete(Utils.Self(siteFeature));
                }
                finally {
                    Sites.EnsureNoSite(client, site.Value <string>("name"));
                }
            }
        }
예제 #2
0
        public void CreateChangeRemoveHandler()
        {
            var handler = JObject.FromObject(new {
                name             = "test_handler",
                path             = "*.test",
                verbs            = "*",
                type             = "Microsoft.IIS.Administration.Test.Type",
                modules          = "ManagedPipelineHandler",
                script_processor = "",
                resource_type    = "unspecified",
                require_access   = "script",
                allow_path_info  = false,
                precondition     = "integratedMode"
            });

            using (var client = ApiHttpClient.Create()) {
                var webserverFeature = Utils.GetFeature(client, HANDLERS_URL, null, null);
                Assert.NotNull(webserverFeature);

                var h = GetHandler(client, webserverFeature, handler.Value <string>("name"));
                if (h != null)
                {
                    Assert.True(client.Delete(Utils.Self(h)));
                }

                JObject createdHandler, patchedHandler = null;
                createdHandler = CreateHandlerForFeature(client, webserverFeature, handler);
                Assert.NotNull(createdHandler);

                try {
                    AssertHandlersEquals(handler, createdHandler);

                    string patchName = handler.Value <string>("name") + "2";
                    h = GetHandler(client, webserverFeature, patchName);
                    if (h != null)
                    {
                        Assert.True(client.Delete(Utils.Self(h)));
                    }

                    createdHandler["name"]             = patchName;
                    createdHandler["path"]             = createdHandler.Value <string>("path") + "2";
                    createdHandler["verbs"]            = "GET";
                    createdHandler["type"]             = createdHandler.Value <string>("type") + "2";
                    createdHandler["modules"]          = "";
                    createdHandler["script_processor"] = "some.dll";
                    createdHandler["resource_type"]    = "file";
                    createdHandler["require_access"]   = "write";
                    createdHandler["allow_path_info"]  = !createdHandler.Value <bool>("allow_path_info");
                    createdHandler["precondition"]     = "";

                    patchedHandler = client.Patch(Utils.Self(createdHandler), createdHandler);
                    Assert.NotNull(patchedHandler);

                    AssertHandlersEquals(createdHandler, patchedHandler);

                    Assert.True(client.Delete(Utils.Self(patchedHandler)));
                }
                finally {
                    if (createdHandler != null)
                    {
                        client.Delete(Utils.Self(createdHandler));
                    }
                    if (patchedHandler != null)
                    {
                        client.Delete(Utils.Self(patchedHandler));
                    }
                }
            }
        }