Esempio n. 1
0
        public void RemoveLeadingSegmentsIsCaseInsensitive()
        {
            var prefix = new UrlPrefix("Foo");

            Assert.Equal(prefix.RemoveLeadingSegments("~/foo/bar"), ("~/bar"));
            Assert.Equal(prefix.RemoveLeadingSegments("~/FOO/BAR"), ("~/BAR"));
        }
Esempio n. 2
0
        public void RemoveLeadingSegmentsCanMatchEntireUrl()
        {
            var prefix = new UrlPrefix("foo");

            Assert.Equal(prefix.RemoveLeadingSegments("~/foo/"), ("~/"));
            Assert.Equal(prefix.RemoveLeadingSegments("~/foo"), ("~/"));
        }
Esempio n. 3
0
        public void RemoveLeadingSegmentsOnlyMatchesFullSegment()
        {
            var prefix = new UrlPrefix("foo");

            Assert.Equal(prefix.RemoveLeadingSegments("~/foo/bar"), ("~/bar"));
            Assert.Equal(prefix.RemoveLeadingSegments("~/fooo/bar"), ("~/fooo/bar"));
            Assert.Equal(prefix.RemoveLeadingSegments("~/fo/bar"), ("~/fo/bar"));
        }
Esempio n. 4
0
        public void RemoveLeadingSegmentsMayContainSlash()
        {
            var prefix = new UrlPrefix("foo/quux");

            Assert.Equal(prefix.RemoveLeadingSegments("~/foo/quux/bar"), ("~/bar"));
            Assert.Equal(prefix.RemoveLeadingSegments("~/foo/bar"), ("~/foo/bar"));
            Assert.Equal(prefix.RemoveLeadingSegments("~/quux/bar"), ("~/quux/bar"));
        }
Esempio n. 5
0
        public void RemoveLeadingSegmentsIgnoreLeadingAndTrailingCharactersOnInput()
        {
            var prefix = new UrlPrefix("foo");

            Assert.Equal(prefix.RemoveLeadingSegments("~/foo/bar"), ("~/bar"));
            var prefix2 = new UrlPrefix("~/foo");

            Assert.Equal(prefix2.RemoveLeadingSegments("~/foo/bar"), ("~/bar"));
            var prefix3 = new UrlPrefix("foo/");

            Assert.Equal(prefix3.RemoveLeadingSegments("~/foo/bar"), ("~/bar"));
        }
Esempio n. 6
0
        public string ItemVirtualPath(IContent content, string tenantName)
        {
            var    workContext = _wca.GetContext();
            string virtualPath = null;

            if (tenantName == _shellSettings.Name)
            {
                virtualPath = _urlHelper.ItemDisplayUrl(content);
            }
            else if (_shellSettings.Name == ShellSettings.DefaultName)
            {
                // from the default tenant
                virtualPath = _urlHelper.Action("DisplayOnDependent", "TenantContent", new { area = "MainBit.MultiTenancy", masterContentItemId = content.Id });
            }
            else
            {
                // from an dependent tenant
                var tenantContent = content.As <TenantContentPart>();
                if (tenantContent != null)
                {
                    if (tenantName == ShellSettings.DefaultName)
                    {
                        // to the default tenant
                        virtualPath = _urlHelper.Action("DisplayOnDefault", "TenantContent", new { area = "MainBit.MultiTenancy", id = tenantContent.MasterContentItemId });
                    }
                    else
                    {
                        // to an other dependent tenant
                        virtualPath = _urlHelper.Action("DisplayOnDependent", "TenantContent", new { area = "MainBit.MultiTenancy", masterContentItemId = tenantContent.MasterContentItemId });
                    }
                }
                else
                {
                    virtualPath = "";
                }
            }

            virtualPath = virtualPath.Substring(workContext.HttpContext.Request.ApplicationPath.Length).TrimStart('/');

            if (_urlPrefix != null)
            {
                virtualPath = _urlPrefix.RemoveLeadingSegments(virtualPath);
            }

            return(virtualPath);
        }