diff --git a/apps/tests/ui/page/page-tests-common.ts b/apps/tests/ui/page/page-tests-common.ts index bdc8ee736..30ff43f16 100644 --- a/apps/tests/ui/page/page-tests-common.ts +++ b/apps/tests/ui/page/page-tests-common.ts @@ -247,7 +247,7 @@ export function test_LoadPageFromModule() { try { var topFrame = FrameModule.topmost(); TKUnit.assert(topFrame.currentPage.content instanceof LabelModule.Label, "Content of the test page should be a Label created within test-page-module."); - var testLabel = topFrame.currentPage.content + var testLabel = topFrame.currentPage.content; TKUnit.assert(testLabel.text === "Label created within a page module."); } finally { @@ -255,6 +255,35 @@ export function test_LoadPageFromModule() { } } +export function test_LoadPageFromDeclarativeWithCSS() { + helper.navigateToModule("ui/page/test-page-declarative-css"); + try { + var topFrame = FrameModule.topmost(); + TKUnit.assert(topFrame.currentPage.content instanceof LabelModule.Label, "Content of the test page should be a Label created within test-page-module-css."); + var testLabel = topFrame.currentPage.content; + TKUnit.assert(testLabel.text === "Label created within a page declarative file with css."); + TKUnit.assert(testLabel.style.backgroundColor.hex === "#ff00ff00", "Expected: #ff00ff00, Actual: " + testLabel.style.backgroundColor.hex); + } + finally { + helper.goBack(); + } + +} + +export function test_LoadPageFromModuleWithCSS() { + helper.navigateToModule("ui/page/test-page-module-css"); + try { + var topFrame = FrameModule.topmost(); + TKUnit.assert(topFrame.currentPage.content instanceof LabelModule.Label, "Content of the test page should be a Label created within test-page-module-css."); + var testLabel = topFrame.currentPage.content; + TKUnit.assert(testLabel.text === "Label created within a page module css."); + TKUnit.assert(testLabel.style.backgroundColor.hex === "#ff00ff00", "Expected: #ff00ff00, Actual: " + testLabel.style.backgroundColor.hex); + } + finally { + helper.goBack(); + } +} + export function test_NavigateToPageCreatedWithNavigationEntry() { var expectedText = "Label created with a NavigationEntry"; var testPage: PageModule.Page; diff --git a/apps/tests/ui/page/test-page-declarative-css.css b/apps/tests/ui/page/test-page-declarative-css.css new file mode 100644 index 000000000..1cebd4dd0 --- /dev/null +++ b/apps/tests/ui/page/test-page-declarative-css.css @@ -0,0 +1,3 @@ +Label { + background-color: #ff00ff00; +} \ No newline at end of file diff --git a/apps/tests/ui/page/test-page-declarative-css.xml b/apps/tests/ui/page/test-page-declarative-css.xml new file mode 100644 index 000000000..af7ce14a3 --- /dev/null +++ b/apps/tests/ui/page/test-page-declarative-css.xml @@ -0,0 +1,3 @@ + + \ No newline at end of file diff --git a/apps/tests/ui/page/test-page-module-css.css b/apps/tests/ui/page/test-page-module-css.css new file mode 100644 index 000000000..1cebd4dd0 --- /dev/null +++ b/apps/tests/ui/page/test-page-module-css.css @@ -0,0 +1,3 @@ +Label { + background-color: #ff00ff00; +} \ No newline at end of file diff --git a/apps/tests/ui/page/test-page-module-css.ts b/apps/tests/ui/page/test-page-module-css.ts new file mode 100644 index 000000000..6bfcf7c13 --- /dev/null +++ b/apps/tests/ui/page/test-page-module-css.ts @@ -0,0 +1,19 @@ +import PageModule = require("ui/page"); +import LabelModule = require("ui/label"); + +export class TestPageModule extends PageModule.Page { + constructor() { + super(); + + var label = new LabelModule.Label(); + label.text = "Label created within a page module css."; + + this.content = label; + } +} + +export function createPage() { + return new TestPageModule(); +} + +//export var Page = new TestPageModule(); \ No newline at end of file diff --git a/ui/frame/frame-common.ts b/ui/frame/frame-common.ts index 4c1851478..f76be238c 100644 --- a/ui/frame/frame-common.ts +++ b/ui/frame/frame-common.ts @@ -65,6 +65,12 @@ export function resolvePageFromEntry(entry: definition.NavigationEntry): pages.P if (!(page && page instanceof pages.Page)) { throw new Error("Failed to load Page from entry.moduleName: " + entry.moduleName); } + + // Possible CSS file path. + var cssFileName = fileResolverModule.resolveFileName(moduleNamePath, "css"); + if (cssFileName) { + page.addCssFile(cssFileName); + } } return page; @@ -83,12 +89,6 @@ function pageFromBuilder(moduleNamePath: string, moduleExports: any): pages.Page element = builder.load(fileName, moduleExports); if (element instanceof pages.Page) { page = element; - - // Possible CSS file path. - var cssFileName = fileResolverModule.resolveFileName(moduleNamePath, "css"); - if (cssFileName) { - page.addCssFile(cssFileName); - } } }