mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-17 21:01:34 +08:00
tests added
This commit is contained in:
@ -151,6 +151,9 @@
|
|||||||
</TypeScriptCompile>
|
</TypeScriptCompile>
|
||||||
<TypeScriptCompile Include="apps\tests\ui\bindingContext_testPage1.ts" />
|
<TypeScriptCompile Include="apps\tests\ui\bindingContext_testPage1.ts" />
|
||||||
<TypeScriptCompile Include="apps\tests\ui\bindingContext_testPage2.ts" />
|
<TypeScriptCompile Include="apps\tests\ui\bindingContext_testPage2.ts" />
|
||||||
|
<TypeScriptCompile Include="apps\tests\ui\border\border-tests-native.android.ts" />
|
||||||
|
<TypeScriptCompile Include="apps\tests\ui\border\border-tests-native.d.ts" />
|
||||||
|
<TypeScriptCompile Include="apps\tests\ui\border\border-tests-native.ios.ts" />
|
||||||
<TypeScriptCompile Include="apps\tests\ui\repeater\repeater-tests.ts" />
|
<TypeScriptCompile Include="apps\tests\ui\repeater\repeater-tests.ts" />
|
||||||
<TypeScriptCompile Include="apps\tests\ui\time-picker\time-picker-tests-native.android.ts">
|
<TypeScriptCompile Include="apps\tests\ui\time-picker\time-picker-tests-native.android.ts">
|
||||||
<DependentUpon>time-picker-tests-native.d.ts</DependentUpon>
|
<DependentUpon>time-picker-tests-native.d.ts</DependentUpon>
|
||||||
|
34
apps/tests/ui/border/border-tests-native.android.ts
Normal file
34
apps/tests/ui/border/border-tests-native.android.ts
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import borderModule = require("ui/border");
|
||||||
|
import utils = require("utils/utils");
|
||||||
|
|
||||||
|
var density = utils.layout.getDisplayDensity();
|
||||||
|
|
||||||
|
export function getNativeBorderWidth(border: borderModule.Border): number {
|
||||||
|
var bkg = <any>(<android.view.ViewGroup>border.android).getBackground();
|
||||||
|
|
||||||
|
return bkg && bkg.getStroke ? bkg.getStroke() / density : -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getNativeCornerRadius(border: borderModule.Border): number {
|
||||||
|
var bkg = <any>(<android.view.ViewGroup>border.android).getBackground();
|
||||||
|
|
||||||
|
return bkg && bkg.getCornerRadius ? bkg.getCornerRadius() / density : -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function checkNativeBorderColor(border: borderModule.Border): boolean {
|
||||||
|
var bkg = <any>(<android.view.ViewGroup>border.android).getBackground();
|
||||||
|
|
||||||
|
return border.borderColor && bkg && bkg.getBorderColor && bkg.getBorderColor() === border.borderColor.android;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function checkNativeBackgroundColor(border: borderModule.Border): boolean {
|
||||||
|
var bkg = <any>(<android.view.ViewGroup>border.android).getBackground();
|
||||||
|
|
||||||
|
return border.backgroundColor && bkg && bkg.getBackgroundColor && bkg.getBackgroundColor() === border.backgroundColor.android;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function checkNativeBackgroundImage(border: borderModule.Border): boolean {
|
||||||
|
var bkg = <any>(<android.view.ViewGroup>border.android).getBackground();
|
||||||
|
|
||||||
|
return bkg && bkg.getBitmap && bkg.getBitmap() !== undefined;
|
||||||
|
}
|
12
apps/tests/ui/border/border-tests-native.d.ts
vendored
Normal file
12
apps/tests/ui/border/border-tests-native.d.ts
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
//@private
|
||||||
|
import borderModule = require("ui/border");
|
||||||
|
|
||||||
|
export declare function getNativeBorderWidth(border: borderModule.Border): number;
|
||||||
|
|
||||||
|
export declare function getNativeCornerRadius(border: borderModule.Border): number;
|
||||||
|
|
||||||
|
export declare function checkNativeBorderColor(border: borderModule.Border): boolean
|
||||||
|
|
||||||
|
export declare function checkNativeBackgroundColor(border: borderModule.Border): boolean;
|
||||||
|
|
||||||
|
export declare function checkNativeBackgroundImage(border: borderModule.Border): boolean
|
21
apps/tests/ui/border/border-tests-native.ios.ts
Normal file
21
apps/tests/ui/border/border-tests-native.ios.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import borderModule = require("ui/border");
|
||||||
|
|
||||||
|
export function getNativeBorderWidth(border: borderModule.Border): number {
|
||||||
|
return (<UIView>border.ios).layer.borderWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getNativeCornerRadius(border: borderModule.Border): number {
|
||||||
|
return (<UIView>border.ios).layer.cornerRadius;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function checkNativeBorderColor(border: borderModule.Border): boolean {
|
||||||
|
return border.borderColor && (<UIView>border.ios).layer.borderColor === border.borderColor.ios.CGColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function checkNativeBackgroundColor(border: borderModule.Border): boolean {
|
||||||
|
return border.backgroundColor && (<UIView>border.ios).backgroundColor.isEqual(border.backgroundColor.ios);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function checkNativeBackgroundImage(border: borderModule.Border): boolean {
|
||||||
|
return (<UIView>border.ios).backgroundColor !== undefined;
|
||||||
|
}
|
@ -1,5 +1,10 @@
|
|||||||
import buttonModule = require("ui/button");
|
import buttonModule = require("ui/button");
|
||||||
import colorModule = require("color");
|
import colorModule = require("color");
|
||||||
|
import TKUnit = require("../../TKUnit");
|
||||||
|
import helper = require("../helper");
|
||||||
|
import viewModule = require("ui/core/view");
|
||||||
|
import borderTestsNative = require("./border-tests-native");
|
||||||
|
import pageModule = require("ui/page");
|
||||||
|
|
||||||
// <snippet module="ui/border" title="Border">
|
// <snippet module="ui/border" title="Border">
|
||||||
// # Border
|
// # Border
|
||||||
@ -18,7 +23,7 @@ import borderModule = require("ui/border");
|
|||||||
//```
|
//```
|
||||||
// </snippet>
|
// </snippet>
|
||||||
|
|
||||||
export function test_DummyTestForCodeSnippet() {
|
function _createBorder(): borderModule.Border {
|
||||||
// <snippet module="ui/border" title="Border">
|
// <snippet module="ui/border" title="Border">
|
||||||
// ### Creating a Border programmatically
|
// ### Creating a Border programmatically
|
||||||
// ``` JavaScript
|
// ``` JavaScript
|
||||||
@ -27,10 +32,56 @@ export function test_DummyTestForCodeSnippet() {
|
|||||||
|
|
||||||
var border = new borderModule.Border();
|
var border = new borderModule.Border();
|
||||||
border.cornerRadius = 10;
|
border.cornerRadius = 10;
|
||||||
border.borderWidth = 1;
|
border.borderWidth = 2;
|
||||||
border.borderColor = new colorModule.Color("#FF0000");
|
border.borderColor = new colorModule.Color("#FF0000");
|
||||||
|
border.backgroundColor = new colorModule.Color("#FFFF00");
|
||||||
|
|
||||||
border.content = button;
|
border.content = button;
|
||||||
// ```
|
// ```
|
||||||
// </snippet>
|
// </snippet>
|
||||||
|
|
||||||
|
return border;
|
||||||
|
}
|
||||||
|
|
||||||
|
export var testBorderWidth = function () {
|
||||||
|
helper.buildUIAndRunTest(_createBorder(), function (views: Array<viewModule.View>) {
|
||||||
|
var border = <borderModule.Border>views[0];
|
||||||
|
var expectedValue = border.borderWidth;
|
||||||
|
var actualValue = borderTestsNative.getNativeBorderWidth(border);
|
||||||
|
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export var testCornerRadius = function () {
|
||||||
|
helper.buildUIAndRunTest(_createBorder(), function (views: Array<viewModule.View>) {
|
||||||
|
var border = <borderModule.Border>views[0];
|
||||||
|
var expectedValue = border.cornerRadius;
|
||||||
|
var actualValue = borderTestsNative.getNativeCornerRadius(border);
|
||||||
|
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export var testBorderColor = function () {
|
||||||
|
helper.buildUIAndRunTest(_createBorder(), function (views: Array<viewModule.View>) {
|
||||||
|
var border = <borderModule.Border>views[0];
|
||||||
|
TKUnit.assert(borderTestsNative.checkNativeBorderColor(border), "BorderColor not applied correctly!");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export var testBackgroundColor = function () {
|
||||||
|
helper.buildUIAndRunTest(_createBorder(), function (views: Array<viewModule.View>) {
|
||||||
|
var border = <borderModule.Border>views[0];
|
||||||
|
TKUnit.assert(borderTestsNative.checkNativeBackgroundColor(border), "BackgroundColor not applied correctly!");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export var testBackgroundImage = function () {
|
||||||
|
var border = _createBorder();
|
||||||
|
|
||||||
|
helper.buildUIAndRunTest(border, function (views: Array<viewModule.View>) {
|
||||||
|
var page = <pageModule.Page>views[1];
|
||||||
|
page.css = "Border { background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC;') }";
|
||||||
|
|
||||||
|
TKUnit.assert(borderTestsNative.checkNativeBackgroundImage(border), "Style background-image not loaded correctly from data URI.");
|
||||||
|
});
|
||||||
}
|
}
|
@ -33,6 +33,9 @@ export class Border extends borderCommon.Border {
|
|||||||
class BorderGradientDrawable extends android.graphics.drawable.GradientDrawable {
|
class BorderGradientDrawable extends android.graphics.drawable.GradientDrawable {
|
||||||
private paint: android.graphics.Paint;
|
private paint: android.graphics.Paint;
|
||||||
private stroke: number;
|
private stroke: number;
|
||||||
|
private cornerRadius: number;
|
||||||
|
private backgroundColor: number;
|
||||||
|
private borderColor: number;
|
||||||
private bitmap: android.graphics.Bitmap
|
private bitmap: android.graphics.Bitmap
|
||||||
|
|
||||||
constructor(borderWidth: number, borderColor: number, backgroundColor: number, cornerRadius: number, bitmap?: android.graphics.Bitmap) {
|
constructor(borderWidth: number, borderColor: number, backgroundColor: number, cornerRadius: number, bitmap?: android.graphics.Bitmap) {
|
||||||
@ -43,19 +46,42 @@ class BorderGradientDrawable extends android.graphics.drawable.GradientDrawable
|
|||||||
if (bitmap) {
|
if (bitmap) {
|
||||||
this.paint = new android.graphics.Paint();
|
this.paint = new android.graphics.Paint();
|
||||||
} else {
|
} else {
|
||||||
|
this.backgroundColor = backgroundColor;
|
||||||
this.setColor(backgroundColor);
|
this.setColor(backgroundColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
var density = utils.layout.getDisplayDensity();
|
var density = utils.layout.getDisplayDensity();
|
||||||
|
|
||||||
this.stroke = borderWidth * density;
|
this.stroke = borderWidth * density;
|
||||||
this.setStroke(this.stroke, borderColor);
|
this.borderColor = borderColor;
|
||||||
|
this.setStroke(this.stroke, this.borderColor);
|
||||||
|
|
||||||
this.setCornerRadius(cornerRadius * density);
|
this.cornerRadius = cornerRadius * density;
|
||||||
|
this.setCornerRadius(this.cornerRadius);
|
||||||
|
|
||||||
return global.__native(this);
|
return global.__native(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getStroke(): number {
|
||||||
|
return this.stroke;
|
||||||
|
}
|
||||||
|
|
||||||
|
public getCornerRadius(): number {
|
||||||
|
return this.cornerRadius;
|
||||||
|
}
|
||||||
|
|
||||||
|
public getBackgroundColor(): number {
|
||||||
|
return this.backgroundColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public getBorderColor(): number {
|
||||||
|
return this.borderColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public getBitmap(): android.graphics.Bitmap {
|
||||||
|
return this.bitmap;
|
||||||
|
}
|
||||||
|
|
||||||
public draw(canvas: android.graphics.Canvas): void {
|
public draw(canvas: android.graphics.Canvas): void {
|
||||||
if (this.paint) {
|
if (this.paint) {
|
||||||
canvas.drawBitmap(this.bitmap, this.stroke, this.stroke, this.paint);
|
canvas.drawBitmap(this.bitmap, this.stroke, this.stroke, this.paint);
|
||||||
|
Reference in New Issue
Block a user