diff --git a/apps/tests/ui/list-view/list-view-tests.ts b/apps/tests/ui/list-view/list-view-tests.ts index 730b24f39..11739337e 100644 --- a/apps/tests/ui/list-view/list-view-tests.ts +++ b/apps/tests/ui/list-view/list-view-tests.ts @@ -8,6 +8,7 @@ import observable = require("data/observable"); import types = require("utils/types"); import platform = require("platform"); import utils = require("utils/utils"); +import { Label } from "ui/label"; //  // # ListView @@ -481,6 +482,28 @@ export class ListViewTest extends testModule.UITest { TKUnit.assertEqual(secondNativeElementText, "2", "second element text"); TKUnit.assertEqual(thirdNativeElementText, "3", "third element text"); } + + public test_ItemTemplateFactoryFunction() { + var listView = this.testView; + + listView.itemTemplate = () => { + var label = new Label(); + label.id = "testLabel"; + label.bind({ sourceProperty: "$value", targetProperty: "text", twoWay: false }); + return label; + } + listView.items = [1, 2, 3]; + + TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + + var firstNativeElementText = this.getTextFromNativeElementAt(listView, 0); + var secondNativeElementText = this.getTextFromNativeElementAt(listView, 1); + var thirdNativeElementText = this.getTextFromNativeElementAt(listView, 2); + + TKUnit.assertEqual(firstNativeElementText, "1", "first element text"); + TKUnit.assertEqual(secondNativeElementText, "2", "second element text"); + TKUnit.assertEqual(thirdNativeElementText, "3", "third element text"); + } public test_BindingListViewToASimpleArrayWithExpression() { var listView = this.testView; diff --git a/apps/tests/ui/repeater/repeater-tests.ts b/apps/tests/ui/repeater/repeater-tests.ts index 044577520..7fae249fa 100644 --- a/apps/tests/ui/repeater/repeater-tests.ts +++ b/apps/tests/ui/repeater/repeater-tests.ts @@ -8,6 +8,7 @@ import layoutBaseModule = require("ui/layouts/layout-base"); import fs = require("file-system"); import pageModule = require("ui/page"); import gestureModule = require("ui/gestures"); +import { Label } from "ui/label"; //  // # Repeater @@ -367,6 +368,28 @@ export function test_BindingRepeaterToASimpleArray() { helper.buildUIAndRunTest(repeater, testAction); } +export function test_ItemTemplateFactoryFunction() { + var repeater = new repeaterModule.Repeater(); + + function testAction(views: Array) { + repeater.itemTemplate = () => { + var label = new Label(); + label.id = "testLabel"; + label.bind({ sourceProperty: "$value", targetProperty: "text", twoWay: false }); + return label; + } + repeater.items = [1, 2, 3]; + + TKUnit.wait(ASYNC); + + TKUnit.assertEqual(getChildAtText(repeater, 0), "1", "first element text"); + TKUnit.assertEqual(getChildAtText(repeater, 1), "2", "second element text"); + TKUnit.assertEqual(getChildAtText(repeater, 2), "3", "third element text"); + } + + helper.buildUIAndRunTest(repeater, testAction); +} + export function test_BindingRepeaterToASimpleArrayWithExpression() { var repeater = new repeaterModule.Repeater(); diff --git a/apps/tests/xml-declaration/template-builder-tests/simple-template-test.xml b/apps/tests/xml-declaration/template-builder-tests/simple-template-test.xml new file mode 100644 index 000000000..796b5bef5 --- /dev/null +++ b/apps/tests/xml-declaration/template-builder-tests/simple-template-test.xml @@ -0,0 +1,8 @@ + + + +