From c5608d7c5c70bf33e30496c20c4f7979152ae825 Mon Sep 17 00:00:00 2001 From: Hristo Deshev Date: Wed, 5 Aug 2015 17:02:42 +0300 Subject: [PATCH] Brought back the viewModule.getAncestor function. Extended it, so you can pass actual type instances instead of strings. --- .../xml-declaration/xml-declaration-tests.ts | 72 ++++++++++--------- ui/core/view-common.ts | 15 ++++ ui/core/view.d.ts | 8 +++ 3 files changed, 62 insertions(+), 33 deletions(-) diff --git a/apps/tests/xml-declaration/xml-declaration-tests.ts b/apps/tests/xml-declaration/xml-declaration-tests.ts index eacf67461..47f247057 100644 --- a/apps/tests/xml-declaration/xml-declaration-tests.ts +++ b/apps/tests/xml-declaration/xml-declaration-tests.ts @@ -1,7 +1,6 @@ import TKUnit = require("../TKUnit"); import view = require("ui/core/view"); import builder = require("ui/builder"); -import page = require("ui/page"); import buttonModule = require("ui/button"); import switchModule = require("ui/switch"); import textFieldModule = require("ui/text-field"); @@ -13,6 +12,7 @@ import fileSystemAccess = require("file-system/file-system-access"); import observable = require("data/observable"); import stackLayoutModule = require("ui/layouts/stack-layout"); import {Label} from "ui/label"; +import {Page} from "ui/page"; import myCustomControlWithoutXml = require("./mymodule/MyControl"); import listViewModule = require("ui/list-view"); import helper = require("../ui/helper"); @@ -52,9 +52,9 @@ export function test_loadWithOptionsNoXML() { }; export function test_loadWithOptionsNoXML_CSSIsApplied() { - var newPage: page.Page; - var pageFactory = function (): page.Page { - newPage = new page.Page(); + var newPage: Page; + var pageFactory = function (): Page { + newPage = new Page(); newPage.content = builder.load({ path: "~/xml-declaration/mymodule", @@ -83,6 +83,12 @@ export function test_loadInheritedPageAndResolveFromChild() { let discoveredPage = contentLabel.page; TKUnit.assert(page === discoveredPage); + + let discoveredAncestorByBaseType = viewModule.getAncestor(contentLabel, Page); + TKUnit.assert(page === discoveredAncestorByBaseType); + + let discoveredAncestorByInheritedTypeName = viewModule.getAncestor(contentLabel, "InheritedPage"); + TKUnit.assert(page === discoveredAncestorByInheritedTypeName); }); } @@ -96,9 +102,9 @@ export function test_loadWithOptionsWithXML() { }; export function test_loadWithOptionsWithXML_CSSIsApplied() { - var newPage: page.Page; - var pageFactory = function (): page.Page { - newPage = new page.Page(); + var newPage: Page; + var pageFactory = function (): Page { + newPage = new Page(); newPage.content = builder.load({ path: "~/xml-declaration/mymodulewithxml", @@ -173,7 +179,7 @@ export function test_parse_ShouldFindEventHandlersInExports() { }; export function test_parse_ShouldSetGridAttachedProperties() { - var p = builder.parse(""); + var p = builder.parse(""); var grid = p.content; var child = grid.getChildAt(0); @@ -191,7 +197,7 @@ export function test_parse_ShouldSetGridAttachedProperties() { }; export function test_parse_ShouldSetCanvasAttachedProperties() { - var p = builder.parse(""); + var p = builder.parse(""); var grid = p.content; var child = grid.getChildAt(0); @@ -203,34 +209,34 @@ export function test_parse_ShouldSetCanvasAttachedProperties() { }; export function test_parse_ShouldParseNumberProperties() { - var p = builder.parse(""); + var p = builder.parse(""); TKUnit.assert(p.width === 100, "Expected result: 100; Actual result: " + p.width + "; type: " + typeof (p.width)); }; export function test_parse_ShouldParseBooleanProperties() { - var p = builder.parse(""); + var p = builder.parse(""); var sw = p.content; TKUnit.assert(sw.checked === true, "Expected result: true; Actual result: " + sw.checked + "; type: " + typeof (sw.checked)); }; export function test_parse_ShouldParseBooleanPropertiesIgnoreCase() { - var p = builder.parse(""); + var p = builder.parse(""); var sw = p.content; TKUnit.assert(sw.checked === false, "Expected result: false; Actual result: " + sw.checked + "; type: " + typeof (sw.checked)); }; export function test_parse_ShouldParseBooleanPropertiesIgnoreCaseInverted() { - var p = builder.parse(""); + var p = builder.parse(""); var tf = p.content; TKUnit.assert(tf.editable === false, "Expected result: false; Actual result: " + tf.editable + "; type: " + typeof (tf.editable)); }; export function test_parse_ShouldParsePlatformSpecificProperties() { - var p = builder.parse(""); + var p = builder.parse(""); var tf = p.content; if (platform.device.os === platform.platformNames.ios) { @@ -241,7 +247,7 @@ export function test_parse_ShouldParsePlatformSpecificProperties() { }; export function test_parse_ShouldParsePlatformSpecificComponents() { - var p = builder.parse(""); + var p = builder.parse(""); if (platform.device.os === platform.platformNames.ios) { TKUnit.assert(p.content instanceof textFieldModule.TextField, "Expected result: TextField; Actual result: " + p.content); } @@ -262,7 +268,7 @@ export function test_parse_ThrowErrorWhenNestingPlatforms() { }; export function test_parse_ShouldParseBindings() { - var p = builder.parse(""); + var p = builder.parse(""); p.bindingContext = { myProp: true }; var sw = p.content; @@ -270,7 +276,7 @@ export function test_parse_ShouldParseBindings() { }; export function test_parse_ShouldParseBindingsWithObservable() { - var p = builder.parse(""); + var p = builder.parse(""); var obj = new observable.Observable(); obj.set("myProp", true); p.bindingContext = obj; @@ -284,7 +290,7 @@ export function test_parse_ShouldParseBindingsWithObservable() { }; export function test_parse_ShouldParseBindingsToEvents() { - var p = builder.parse("