Example #1
0
        public void Make_Composite_Url()
        {
            var websiteInfo = new Mock <IWebsiteInfo>();

            websiteInfo.Setup(x => x.GetBasePath()).Returns(string.Empty);
            websiteInfo.Setup(x => x.GetBaseUrl()).Returns(new Uri("http://test.com"));

            var urlHelper = new RequestHelper(websiteInfo.Object);
            var hasher    = new Mock <IHasher>();

            hasher.Setup(x => x.Hash(It.IsAny <string>())).Returns((string s) => s.ToLower());
            var options = new SmidgeOptions {
                UrlOptions = new UrlManagerOptions {
                    CompositeFilePath = "sg", MaxUrlLength = 100
                }
            };
            var creator = new DefaultUrlManager(
                Mock.Of <IOptions <SmidgeOptions> >(x => x.Value == options),
                hasher.Object,
                urlHelper);

            var url = creator.GetUrls(
                new List <IWebFile> {
                new JavaScriptFile("Test1.js"), new JavaScriptFile("Test2.js")
            }, ".js",
                Mock.Of <ICacheBuster>(buster => buster.GetValue() == "1"));

            Assert.Single(url);
            Assert.Equal("/sg/Test1.Test2.js.v1", url.First().Url);
            Assert.Equal("test1.test2", url.First().Key);
        }
Example #2
0
        public void Throws_When_Single_Dependency_Too_Long()
        {
            var websiteInfo = new Mock <IWebsiteInfo>();

            websiteInfo.Setup(x => x.GetBasePath()).Returns(string.Empty);
            websiteInfo.Setup(x => x.GetBaseUrl()).Returns(new Uri("http://test.com"));

            var urlHelper = new RequestHelper(websiteInfo.Object);
            var hasher    = new Mock <IHasher>();

            hasher.Setup(x => x.Hash(It.IsAny <string>())).Returns((string s) => s.ToLower());
            var options = new SmidgeOptions {
                UrlOptions = new UrlManagerOptions {
                    CompositeFilePath = "sg", MaxUrlLength = 10
                }
            };
            var creator = new DefaultUrlManager(
                Mock.Of <IOptions <SmidgeOptions> >(x => x.Value == options),
                hasher.Object,
                urlHelper);

            Assert.Throws <InvalidOperationException>(() => creator.GetUrls(
                                                          new List <IWebFile> {
                new JavaScriptFile("Test1.js")
            }, ".js",
                                                          Mock.Of <ICacheBuster>(buster => buster.GetValue() == "1")));
        }
Example #3
0
        public void Make_Bundle_Url()
        {
            var websiteInfo = new Mock <IWebsiteInfo>();

            websiteInfo.Setup(x => x.GetBasePath()).Returns(string.Empty);
            websiteInfo.Setup(x => x.GetBaseUrl()).Returns(new Uri("http://test.com"));

            var urlHelper = new RequestHelper(websiteInfo.Object);
            var hasher    = new Mock <IHasher>();

            hasher.Setup(x => x.Hash(It.IsAny <string>())).Returns("blah");
            var options = new SmidgeOptions {
                UrlOptions = new UrlManagerOptions {
                    BundleFilePath = "sg"
                }
            };
            var creator = new DefaultUrlManager(
                Mock.Of <IOptions <SmidgeOptions> >(x => x.Value == options),
                hasher.Object,
                urlHelper);

            var url = creator.GetUrl("my-bundle", ".js", false, Mock.Of <ICacheBuster>(buster => buster.GetValue() == "1"));

            Assert.Equal("/sg/my-bundle.js.v1", url);
        }
Example #4
0
        public void Make_Composite_Url_Splits()
        {
            var hasher = new Mock <IHasher>();

            hasher.Setup(x => x.Hash(It.IsAny <string>())).Returns((string s) => s.ToLower());
            var options = new SmidgeOptions {
                UrlOptions = new UrlManagerOptions {
                    CompositeFilePath = "sg", MaxUrlLength = 14 + 10
                }
            };
            var creator = new DefaultUrlManager(
                Mock.Of <IOptions <SmidgeOptions> >(x => x.Value == options),
                Mock.Of <ISmidgeConfig>(x => x.Version == "1"),
                hasher.Object);

            var url = creator.GetUrls(new List <IWebFile> {
                new JavaScriptFile("Test1.js"), new JavaScriptFile("Test2.js")
            }, ".js");

            Assert.Equal(2, url.Count());
            Assert.Equal("sg/Test1.js.v1", url.ElementAt(0).Url);
            Assert.Equal("test1", url.ElementAt(0).Key);
            Assert.Equal("sg/Test2.js.v1", url.ElementAt(1).Url);
            Assert.Equal("test2", url.ElementAt(1).Key);
        }
Example #5
0
    //public UrlManager Urlmanager { get; set; }
    //private int beginPageIndex;
    //private int endPageIndex;
    //private bool showPrevious;//是否显示 上一页
    //private bool showNext; //下一页
    protected void Page_Load(object sender, EventArgs e)
    {
        System.Text.StringBuilder script = new System.Text.StringBuilder();
        UrlManager p = new DefaultUrlManager(RecordCount , PageSize , Helper.queryParam_pagination);

        if (p.PageCount > 0) {
            script.AppendLine("<script type=\"text/javascript\">");

            script.AppendLine("if (!window.jQuery) {\r");
            script.AppendLine("alert('缺少 jQuery库文件');");
            script.AppendLine("} else {");

            script.AppendLine("$(function(){");
            script.AppendLine(@"String.format = function (src) {if (arguments.length == 0) return null;var args = Array.prototype.slice.call(arguments, 1);return src.replace(/\{(\d+)\}/g, function (m, i) {return args[i];});}");
            script.AppendLine("$(\"div.pagination\").pagination({");
            script.AppendFormat("total:{0},pageSize:{1}," , RecordCount , PageSize);
            script.Append("showPageList:false,");
            script.AppendFormat("pageNumber:{0}," , p.PageIndex);
            script.AppendFormat("displayMsg:\"{0}\"," , p.DisplayMsg());
            script.Append("onSelectPage:function(pageNumber, pageSize){");
            script.AppendFormat("document.location.href=String.format('{0}',pageNumber);" , p.GetPageUrl());
            script.AppendLine("}");
            script.AppendLine("});");

            script.AppendLine("});}");

            script.AppendLine("</script>");
            Type t = Page.GetType();
            if (!Page.ClientScript.IsStartupScriptRegistered(t , "pagination")) {
                Page.ClientScript.RegisterStartupScript(t , "pagination" , script.ToString());
            }
        } else {
            ltHtml.Text = "<div class=\"pagination-info\">"+p.DisplayMsg()+"</div><div style=\"clear:both;\"></div>";
        }
    }
Example #6
0
        public void Parse_Path()
        {
            var path    = "c61531b5.2512be3b.bb1214f7.a21bd1fd.js.v1";
            var options = new SmidgeOptions {
                UrlOptions = new UrlManagerOptions {
                    CompositeFilePath = "sg"
                }
            };
            var manager = new DefaultUrlManager(
                Mock.Of <IOptions <SmidgeOptions> >(x => x.Value == options),
                Mock.Of <IHasher>(),
                Mock.Of <IRequestHelper>());

            var result = manager.ParsePath(path);

            Assert.Equal("1", result.Version);
            Assert.Equal(4, result.Names.Count());
            Assert.Equal(WebFileType.Js, result.WebType);
        }
Example #7
0
        public void Make_Bundle_Url()
        {
            var hasher = new Mock <IHasher>();

            hasher.Setup(x => x.Hash(It.IsAny <string>())).Returns("blah");
            var options = new SmidgeOptions {
                UrlOptions = new UrlManagerOptions {
                    BundleFilePath = "sg"
                }
            };
            var creator = new DefaultUrlManager(
                Mock.Of <IOptions <SmidgeOptions> >(x => x.Value == options),
                Mock.Of <ISmidgeConfig>(x => x.Version == "1"),
                hasher.Object);

            var url = creator.GetUrl("my-bundle", ".js");

            Assert.Equal("sg/my-bundle.js.v1", url);
        }
Example #8
0
        public void Throws_When_Single_Dependency_Too_Long()
        {
            var hasher = new Mock <IHasher>();

            hasher.Setup(x => x.Hash(It.IsAny <string>())).Returns((string s) => s.ToLower());
            var options = new SmidgeOptions {
                UrlOptions = new UrlManagerOptions {
                    CompositeFilePath = "sg", MaxUrlLength = 10
                }
            };
            var creator = new DefaultUrlManager(
                Mock.Of <IOptions <SmidgeOptions> >(x => x.Value == options),
                Mock.Of <ISmidgeConfig>(x => x.Version == "1"),
                hasher.Object);

            Assert.Throws <InvalidOperationException>(() => creator.GetUrls(new List <IWebFile> {
                new JavaScriptFile("Test1.js")
            }, ".js"));
        }