Subtext.Framework.UI.Skinning.ScriptElementCollectionRenderer.GetScriptsToBeMerged C# (CSharp) Method

GetScriptsToBeMerged() public method

public GetScriptsToBeMerged ( string skinName ) : IList
skinName string
return IList
        public IList<string> GetScriptsToBeMerged(string skinName)
        {
            List<string> scripts = new List<string>();

            SkinTemplate skinTemplate = templates.GetTemplate(skinName);

            if (skinTemplate != null && skinTemplate.Scripts!=null)
            {
                if(CanScriptsBeMerged(skinTemplate))
                {
                    string skinPath = CreateStylePath(skinTemplate.TemplateFolder);
                    foreach (Script script in skinTemplate.Scripts)
                    {
                        if (script.Src.StartsWith("~"))
                        {
                            scripts.Add(HttpHelper.ExpandTildePath(script.Src));
                        }
                        else
                        {
                            scripts.Add(skinPath + script.Src);
                        }
                    }
                }
            }
            return scripts;
        }

Usage Example

コード例 #1
0
ファイル: SkinScriptsTests.cs プロジェクト: ayende/Subtext
        public void MergedScriptIsCorrect(string skinKey, int expectedStyles)
        {
            UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty);
            MockRepository mocks = new MockRepository();

            VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks);
            mocks.ReplayAll();

            SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider);
            ScriptElementCollectionRenderer renderer = new ScriptElementCollectionRenderer(templates);
            int mergedStyles = renderer.GetScriptsToBeMerged(skinKey).Count;

            Assert.AreEqual(expectedStyles, mergedStyles, String.Format("Skin {0} should have {1} merged scripts but found {2}", skinKey, expectedStyles, mergedStyles));
        }