public async void TestMoveDown()
        {
            await SetUp();

            var item = new IsapiFiltersItem(null);

            item.Name = "test";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);

            var last     = 5;
            var previous = last - 1;

            _feature.SelectedItem = _feature.Items[previous];
            var expected = "test";

            Assert.Equal(expected, _feature.Items[last].Name);
            var original = "ASP.Net_4.0_64bit";

            Assert.Equal(original, _feature.Items[previous].Name);
            _feature.MoveDown();
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal(original, _feature.SelectedItem.Name);
            Assert.Equal(expected, _feature.Items[previous].Name);
            Assert.Equal(original, _feature.Items[last].Name);

            const string Expected     = @"expected_up1.site.config";
            const string ExpectedMono = @"expected_up.site.mono.config";

            XmlAssert.Equal(Path.Combine("IsapiFilters", Helper.IsRunningOnMono() ? ExpectedMono : Expected), Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }
        public void TestRevert()
        {
            SetUp();

            const string Expected = @"expected_revert.site.config";
            var          document = XDocument.Load(Current);

            document.Root?.Add(
                new XElement("location",
                             new XAttribute("path", "WebSite1"),
                             new XElement("system.webServer")));
            document.Save(Expected);

            var item = new IsapiFiltersItem(null);

            item.Name = "test";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal("test", _feature.SelectedItem.Name);

            _feature.Revert();
            Assert.Null(_feature.SelectedItem);
            Assert.Equal(5, _feature.Items.Count);

            XmlAssert.Equal(Expected, Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }
        public void TestAdd()
        {
            SetUp();

            const string Expected = @"expected_add.site.config";
            var          document = XDocument.Load(Current);
            var          node     = new XElement("location");

            node.SetAttributeValue("path", "WebSite1");
            document.Root.Add(node);
            var web = new XElement("system.webServer");

            node.Add(web);
            var content = new XElement("isapiFilters");

            web.Add(content);
            var add = new XElement("filter");

            add.SetAttributeValue("name", "test");
            add.SetAttributeValue("path", "c:\\test.dll");
            content.Add(add);
            document.Save(Expected);

            var item = new IsapiFiltersItem(null);

            item.Name = "test";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal("test", _feature.SelectedItem.Name);

            XmlAssert.Equal(Expected, Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }
        public void TestMoveDown()
        {
            SetUp();

            const string Expected = @"expected_add.site.config";
            var          document = XDocument.Load(Current);

            document.Root?.Add(
                new XElement("location",
                             new XAttribute("path", "WebSite1"),
                             new XElement("system.webServer",
                                          new XElement("isapiFilters",
                                                       new XElement("remove",
                                                                    new XAttribute("name", "ASP.Net_4.0_64bit")),
                                                       new XElement("filter",
                                                                    new XAttribute("name", "test"),
                                                                    new XAttribute("path", "c:\\test.dll")),
                                                       new XElement("filter",
                                                                    new XAttribute("enableCache", "true"),
                                                                    new XAttribute("name", "ASP.Net_4.0_64bit"),
                                                                    new XAttribute("path", @"%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll"),
                                                                    new XAttribute("preCondition", "bitness64,runtimeVersionv4.0"))))));
            document.Save(Expected);

            var item = new IsapiFiltersItem(null);

            item.Name = "test";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);

            var last     = 5;
            var previous = last - 1;

            _feature.SelectedItem = _feature.Items[previous];
            var expected = "test";

            Assert.Equal(expected, _feature.Items[last].Name);
            var original = "ASP.Net_4.0_64bit";

            Assert.Equal(original, _feature.Items[previous].Name);
            _feature.MoveDown();
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal(original, _feature.SelectedItem.Name);
            Assert.Equal(expected, _feature.Items[previous].Name);
            Assert.Equal(original, _feature.Items[last].Name);

            XmlAssert.Equal(Expected, Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }
        public async void TestAdd()
        {
            await this.SetUp();

            var item = new IsapiFiltersItem(null);

            item.Name = "test";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal("test", _feature.SelectedItem.Name);

            const string Expected     = @"expected_add.site.config";
            const string ExpectedMono = @"expected_add.site.mono.config";

            XmlAssert.Equal(Path.Combine("IsapiFilters", Helper.IsRunningOnMono() ? ExpectedMono : Expected), Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }
예제 #6
0
        public async void TestAdd()
        {
            await this.SetUp();

            const string Expected     = @"expected_add.config";
            const string ExpectedMono = @"expected_add.mono.config";

            var item = new IsapiFiltersItem(null);

            item.Name = "my cgi";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal("my cgi", _feature.SelectedItem.Name);
            Assert.Equal("c:\\test.dll", _feature.SelectedItem.Path);
            Assert.Equal(6, _feature.Items.Count);
            XmlAssert.Equal(
                Helper.IsRunningOnMono()
                    ? Path.Combine("IsapiFilters", ExpectedMono)
                    : Path.Combine("IsapiFilters", Expected),
                Current);
        }
        public void TestAdd()
        {
            SetUp();
            const string Expected = @"expected_add.config";
            var          document = XDocument.Load(Current);
            var          node     = document.Root.XPathSelectElement("/configuration/system.webServer/isapiFilters");

            node?.Add(
                new XElement("filter",
                             new XAttribute("name", "my cgi"),
                             new XAttribute("path", "c:\\test.dll")));
            document.Save(Expected);

            var item = new IsapiFiltersItem(null);

            item.Name = "my cgi";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal("my cgi", _feature.SelectedItem.Name);
            Assert.Equal("c:\\test.dll", _feature.SelectedItem.Path);
            Assert.Equal(6, _feature.Items.Count);
            XmlAssert.Equal(Expected, Current);
        }
        public void TestMoveUp()
        {
            SetUp();

            const string Expected = @"expected_add.site.config";
            var          document = XDocument.Load(Current);
            var          node     = new XElement("location");

            node.SetAttributeValue("path", "WebSite1");
            document.Root.Add(node);
            var web = new XElement("system.webServer");

            node.Add(web);
            var content = new XElement("isapiFilters");

            web.Add(content);
            var clear = new XElement("clear");

            content.Add(clear);
            var one = new XElement("filter");

            one.SetAttributeValue("enableCache", "true");
            one.SetAttributeValue("name", "ASP.Net_2.0.50727-64");
            one.SetAttributeValue("path", @"%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll");
            one.SetAttributeValue("preCondition", "bitness64,runtimeVersionv2.0");
            content.Add(one);

            var two = new XElement("filter");

            two.SetAttributeValue("enableCache", "true");
            two.SetAttributeValue("name", "ASP.Net_2.0.50727.0");
            two.SetAttributeValue("path", @"%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll");
            two.SetAttributeValue("preCondition", "bitness32,runtimeVersionv2.0");
            content.Add(two);

            var three = new XElement("filter");

            three.SetAttributeValue("enableCache", "true");
            three.SetAttributeValue("name", "ASP.Net_2.0_for_v1.1");
            three.SetAttributeValue("path", @"%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll");
            three.SetAttributeValue("preCondition", "runtimeVersionv1.1");
            content.Add(three);

            var four = new XElement("filter");

            four.SetAttributeValue("enableCache", "true");
            four.SetAttributeValue("name", "ASP.Net_4.0_32bit");
            four.SetAttributeValue("path", @"%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll");
            four.SetAttributeValue("preCondition", "bitness32,runtimeVersionv4.0");
            content.Add(four);

            var add = new XElement("filter");

            add.SetAttributeValue("name", "test");
            add.SetAttributeValue("path", "c:\\test.dll");
            content.Add(add);

            var six = new XElement("filter");

            six.SetAttributeValue("enableCache", "true");
            six.SetAttributeValue("name", "ASP.Net_4.0_64bit");
            six.SetAttributeValue("path", @"%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll");
            six.SetAttributeValue("preCondition", "bitness64,runtimeVersionv4.0");
            content.Add(six);

            document.Save(Expected);

            var item = new IsapiFiltersItem(null);

            item.Name = "test";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);

            var last     = 5;
            var previous = last - 1;

            _feature.SelectedItem = _feature.Items[last];
            var expected = "test";

            Assert.Equal(expected, _feature.Items[last].Name);
            var original = "ASP.Net_4.0_64bit";

            Assert.Equal(original, _feature.Items[previous].Name);
            _feature.MoveUp();
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal(expected, _feature.SelectedItem.Name);
            Assert.Equal(expected, _feature.Items[previous].Name);
            Assert.Equal(original, _feature.Items[last].Name);

            XmlAssert.Equal(Expected, Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }