mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 20:11:24 +08:00
Add binding expressions tests.
This commit is contained in:
@ -220,8 +220,33 @@
|
||||
<TypeScriptCompile Include="apps\tests\ui\bindingContext_testPage.ts">
|
||||
<DependentUpon>bindingContext_testPage.xml</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="apps\tests\ui\test-pages\bindingExpressions_logicalComparisonOperators_testPage.ts">
|
||||
<DependentUpon>bindingExpressions_logicalComparisonOperators_testPage.xml</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="apps\tests\ui\test-pages\bindingExpressions_comparisonOperators_testPage.ts">
|
||||
<DependentUpon>bindingExpressions_comparisonOperators_testPage.xml</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="apps\tests\ui\test-pages\bindingExpressions_binaryOperators_testPage.ts">
|
||||
<DependentUpon>bindingExpressions_binaryOperators_testPage.xml</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="apps\tests\ui\test-pages\bindingExpressions_ternaryOperator_testPage.ts">
|
||||
<DependentUpon>bindingExpressions_ternaryOperator_testPage.xml</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="apps\tests\ui\test-pages\bindingExpressions_groupingParenthesis_testPage.ts">
|
||||
<DependentUpon>bindingExpressions_groupingParenthesis_testPage.xml</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="apps\tests\ui\test-pages\bindingExpressions_unaryOperators_testPage.ts">
|
||||
<DependentUpon>bindingExpressions_unaryOperators_testPage.xml</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="apps\tests\ui\test-pages\bindingExpressions_logicalOperators_testPage.ts">
|
||||
<DependentUpon>bindingExpressions_logicalOperators_testPage.xml</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="apps\tests\ui\test-pages\bindingExpressions_arrayAccess_testPage.ts">
|
||||
<DependentUpon>bindingExpressions_arrayAccess_testPage.xml</DependentUpon>
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="apps\tests\ui\bindingContext_testPage1.ts" />
|
||||
<TypeScriptCompile Include="apps\tests\ui\bindingContext_testPage2.ts" />
|
||||
<TypeScriptCompile Include="apps\tests\ui\binding-expressions-tests.ts" />
|
||||
<TypeScriptCompile Include="apps\tests\ui\repeater\repeater-tests.ts" />
|
||||
<TypeScriptCompile Include="apps\tests\ui\time-picker\time-picker-tests-native.android.ts">
|
||||
<DependentUpon>time-picker-tests-native.d.ts</DependentUpon>
|
||||
@ -792,6 +817,14 @@
|
||||
<Content Include="apps\tests\pages\page18.xml" />
|
||||
<Content Include="apps\tests\pages\test2.png" />
|
||||
<Content Include="apps\tests\ui\bindingContext_testPage.xml" />
|
||||
<Content Include="apps\tests\ui\test-pages\bindingExpressions_logicalComparisonOperators_testPage.xml" />
|
||||
<Content Include="apps\tests\ui\test-pages\bindingExpressions_comparisonOperators_testPage.xml" />
|
||||
<Content Include="apps\tests\ui\test-pages\bindingExpressions_binaryOperators_testPage.xml" />
|
||||
<Content Include="apps\tests\ui\test-pages\bindingExpressions_ternaryOperator_testPage.xml" />
|
||||
<Content Include="apps\tests\ui\test-pages\bindingExpressions_groupingParenthesis_testPage.xml" />
|
||||
<Content Include="apps\tests\ui\test-pages\bindingExpressions_unaryOperators_testPage.xml" />
|
||||
<Content Include="apps\tests\ui\test-pages\bindingExpressions_logicalOperators_testPage.xml" />
|
||||
<Content Include="apps\tests\ui\test-pages\bindingExpressions_arrayAccess_testPage.xml" />
|
||||
<Content Include="apps\tests\ui\bindingContext_testPage1.xml" />
|
||||
<Content Include="apps\tests\ui\bindingContext_testPage2.xml" />
|
||||
<Content Include="apps\tests\ui\label\label-tests-wrong.css" />
|
||||
|
@ -47,6 +47,7 @@ allTests["VIRTUAL-ARRAY"] = require("./virtual-array-tests");
|
||||
allTests["OBSERVABLE"] = require("./ui/observable-tests");
|
||||
allTests["DEPENDENCY-OBSERVABLE"] = require("./ui/dependency-observable-tests");
|
||||
allTests["BINDABLE"] = require("./ui/bindable-tests");
|
||||
allTests["BINDING-EXPRESSIONS"] = require("./ui/binding-expressions-tests");
|
||||
allTests["XML-PARSER"] = require("./xml-parser-tests/xml-parser-tests");
|
||||
allTests["VIEW"] = require("./ui/view/view-tests");
|
||||
allTests["STYLE"] = require("./ui/style/style-tests");
|
||||
|
122
apps/tests/ui/binding-expressions-tests.ts
Normal file
122
apps/tests/ui/binding-expressions-tests.ts
Normal file
@ -0,0 +1,122 @@
|
||||
import frameModule = require("ui/frame");
|
||||
import textFieldModule = require("ui/text-field");
|
||||
import fs = require("file-system");
|
||||
import helper = require("../ui/helper");
|
||||
|
||||
export var test_BindingExpressions_ArrayAccess = function () {
|
||||
navigateToPage("bindingExpressions_arrayAccess_testPage");
|
||||
try {
|
||||
assertElementString("textField1", "bindings");
|
||||
assertElementString("textField2", "1");
|
||||
} finally {
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
export var test_BindingExpressions_LogicalOperators = function () {
|
||||
navigateToPage("bindingExpressions_logicalOperators_testPage");
|
||||
try {
|
||||
assertElementString("textField1", "true");
|
||||
assertElementString("textField2", "false");
|
||||
assertElementString("textField3", "true");
|
||||
} finally {
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
export var test_BindingExpressions_UnaryOperators = function () {
|
||||
navigateToPage("bindingExpressions_unaryOperators_testPage");
|
||||
try {
|
||||
assertElementString("textField1", "5");
|
||||
assertElementString("textField2", "-5");
|
||||
assertElementString("textField3", "3");
|
||||
assertElementString("textField4", "-3");
|
||||
assertElementString("textField5", "1");
|
||||
assertElementString("textField6", "-1");
|
||||
assertElementValueIsNaN("textField7");
|
||||
assertElementValueIsNaN("textField8");
|
||||
} finally {
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
export var test_BindingExpressions_BinaryOperators = function () {
|
||||
navigateToPage("bindingExpressions_binaryOperators_testPage");
|
||||
try {
|
||||
assertElementString("textField1", "1");
|
||||
assertElementString("textField2", "-1");
|
||||
assertElementString("textField3", "0");
|
||||
assertElementString("textField4", "0");
|
||||
assertElementString("textField5", "Infinity");
|
||||
assertElementString("textField6", "0");
|
||||
assertElementValueIsNaN("textField7");
|
||||
} finally {
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
export var test_BindingExpressions_ComparisonOperators = function () {
|
||||
navigateToPage("bindingExpressions_comparisonOperators_testPage");
|
||||
try {
|
||||
assertElementString("textField1", "true");
|
||||
//assertElementString("textField2", "false");
|
||||
assertElementString("textField3", "true");
|
||||
//assertElementString("textField4", "false");
|
||||
assertElementString("textField5", "false");
|
||||
assertElementString("textField6", "true");
|
||||
assertElementString("textField7", "false");
|
||||
assertElementString("textField8", "true");
|
||||
} finally {
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
export var test_BindingExpressions_LogicalComparisonOperators = function () {
|
||||
navigateToPage("bindingExpressions_logicalComparisonOperators_testPage");
|
||||
try {
|
||||
assertElementString("textField1", "false");
|
||||
assertElementString("textField2", "true");
|
||||
assertElementString("textField3", "Text");
|
||||
} finally {
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
export var test_BindingExpressions_TernaryOperator = function () {
|
||||
navigateToPage("bindingExpressions_ternaryOperator_testPage");
|
||||
try {
|
||||
assertElementString("textField1", "by Pratchett");
|
||||
} finally {
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
export var test_BindingExpressions_GroupingParenthesis = function () {
|
||||
navigateToPage("bindingExpressions_groupingParenthesis_testPage");
|
||||
try {
|
||||
assertElementString("textField1", "21");
|
||||
assertElementString("textField2", "8");
|
||||
} finally {
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
export var assertElementString = function (elementId: string, value: any) {
|
||||
var element: textFieldModule.TextField = <textFieldModule.TextField>(frameModule.topmost().currentPage.getViewById(elementId));
|
||||
if (element.text.toString() !== value) {
|
||||
throw new Error(" Actual: " + element.text.toString() + " Expected: " + value);
|
||||
}
|
||||
}
|
||||
|
||||
export var assertElementValueIsNaN = function (elementId: string) {
|
||||
var element: textFieldModule.TextField = <textFieldModule.TextField>(frameModule.topmost().currentPage.getViewById(elementId));
|
||||
var value: any = element.text;
|
||||
if (isNaN(value) !== true) {
|
||||
throw new Error(" Actual: " + value + " is not NaN");
|
||||
}
|
||||
}
|
||||
|
||||
export var navigateToPage = function (pageName: string) {
|
||||
var path = __dirname.substr(fs.knownFolders.currentApp().path.length);
|
||||
helper.navigateToModule(path + "/test-pages/" + pageName);
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
import pages = require("ui/page");
|
||||
|
||||
export function pageLoaded(args) {
|
||||
var strArr: string[] = ["tests", "bindings", "tests"];
|
||||
var numArr: number[] = [-1, 0, 1];
|
||||
var page = <pages.Page>args.object;
|
||||
page.bindingContext = { strArray: strArr, numArray: numArr };
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
<Page loaded="pageLoaded">
|
||||
<StackLayout>
|
||||
<TextField id="textField1" text="{{ strArray[1] }}" />
|
||||
<TextField id="textField2" text="{{ numArray[2] }}" />
|
||||
</StackLayout>
|
||||
</Page>
|
@ -0,0 +1,6 @@
|
||||
import pages = require("ui/page");
|
||||
|
||||
export function pageLoaded(args) {
|
||||
var page = <pages.Page>args.object;
|
||||
page.bindingContext = { var0: 0, var1: 1 };
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
<Page loaded="pageLoaded">
|
||||
<StackLayout>
|
||||
<TextField id="textField1" text="{{ var0 + var1 }}" />
|
||||
<TextField id="textField2" text="{{ var0 - var1 }}" />
|
||||
<TextField id="textField3" text="{{ var0 * var1 }}" />
|
||||
<TextField id="textField4" text="{{ var0 / var1 }}" />
|
||||
<TextField id="textField5" text="{{ var1 / var0 }}" />
|
||||
<TextField id="textField6" text="{{ var0 % var1 }}" />
|
||||
<TextField id="textField7" text="{{ var1 % var0 }}" />
|
||||
</StackLayout>
|
||||
</Page>
|
@ -0,0 +1,6 @@
|
||||
import pages = require("ui/page");
|
||||
|
||||
export function pageLoaded(args) {
|
||||
var page = <pages.Page>args.object;
|
||||
page.bindingContext = { var0: 0, var1: 1};
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
<Page loaded="pageLoaded">
|
||||
<StackLayout>
|
||||
<TextField id="textField1" text="{{ var0 < var1 }}" />
|
||||
<!--<TextField id="textField2" text="{{ var0 > var1 }}" />-->
|
||||
<TextField id="textField3" text="{{ var0 <= var1 }}" />
|
||||
<!--<TextField id="textField4" text="{{ var0 >= var1 }}" />-->
|
||||
<TextField id="textField5" text="{{ var0 == var1 }}" />
|
||||
<TextField id="textField6" text="{{ var0 != var1 }}" />
|
||||
<TextField id="textField7" text="{{ var0 === var1 }}" />
|
||||
<TextField id="textField8" text="{{ var0 !== var1 }}" />
|
||||
</StackLayout>
|
||||
</Page>
|
@ -0,0 +1,6 @@
|
||||
import pages = require("ui/page");
|
||||
|
||||
export function pageLoaded(args) {
|
||||
var page = <pages.Page>args.object;
|
||||
page.bindingContext = { var1: 1, var2: 2, var3: 3, var4: 4 };
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
<Page loaded="pageLoaded">
|
||||
<StackLayout>
|
||||
<TextField id="textField1" text="{{ (var1 + var2) * ( var3 + var4) }}" />
|
||||
<TextField id="textField2" text="{{ ((var1 + var3) * var4) / var2 }}" />
|
||||
</StackLayout>
|
||||
</Page>
|
@ -0,0 +1,6 @@
|
||||
import pages = require("ui/page");
|
||||
|
||||
export function pageLoaded(args) {
|
||||
var page = <pages.Page>args.object;
|
||||
page.bindingContext = { varFalse: false, varTrue: true, varText: "Text" };
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
<Page loaded="pageLoaded">
|
||||
<StackLayout>
|
||||
<TextField id="textField1" text="{{ varTrue && varFalse }}" />
|
||||
<TextField id="textField2" text="{{ varTrue || varFalse }}" />
|
||||
<TextField id="textField3" text="{{ varTrue && varFalse || varText }}" />
|
||||
</StackLayout>
|
||||
</Page>
|
@ -0,0 +1,6 @@
|
||||
import pages = require("ui/page");
|
||||
|
||||
export function pageLoaded(args) {
|
||||
var page = <pages.Page>args.object;
|
||||
page.bindingContext = { varFalse: false, varTrue: true, varText: "Text" };
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
<Page loaded="pageLoaded">
|
||||
<StackLayout>
|
||||
<TextField id="textField1" text="{{ !varFalse }}" />
|
||||
<TextField id="textField2" text="{{ !varTrue }}" />
|
||||
<TextField id="textField3" text="{{ !!varText }}" />
|
||||
</StackLayout>
|
||||
</Page>
|
@ -0,0 +1,6 @@
|
||||
import pages = require("ui/page");
|
||||
|
||||
export function pageLoaded(args) {
|
||||
var page = <pages.Page>args.object;
|
||||
page.bindingContext = { author: "Pratchett" };
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
<Page loaded="pageLoaded">
|
||||
<StackLayout>
|
||||
<TextField id="textField1" text="{{ author ? 'by ' + author : '[no author]' }}" />
|
||||
</StackLayout>
|
||||
</Page>
|
@ -0,0 +1,6 @@
|
||||
import pages = require("ui/page");
|
||||
|
||||
export function pageLoaded(args) {
|
||||
var page = <pages.Page>args.object;
|
||||
page.bindingContext = { varStr: "5", varNum: 3, varTrue: true, varText: "Text"};
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
<Page loaded="pageLoaded">
|
||||
<StackLayout>
|
||||
<TextField id="textField1" text="{{ +varStr }}" />
|
||||
<TextField id="textField2" text="{{ -varStr }}" />
|
||||
<TextField id="textField3" text="{{ +varNum }}" />
|
||||
<TextField id="textField4" text="{{ -varNum }}" />
|
||||
<TextField id="textField5" text="{{ +varTrue }}" />
|
||||
<TextField id="textField6" text="{{ -varTrue }}" />
|
||||
<TextField id="textField7" text="{{ +varText }}" />
|
||||
<TextField id="textField8" text="{{ -varText }}" />
|
||||
</StackLayout>
|
||||
</Page>
|
Reference in New Issue
Block a user