mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 11:42:04 +08:00
tests added
This commit is contained in:
@ -151,6 +151,9 @@
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="apps\tests\ui\bindingContext_testPage1.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\time-picker\time-picker-tests-native.android.ts">
|
||||
<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 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">
|
||||
// # Border
|
||||
@ -18,7 +23,7 @@ import borderModule = require("ui/border");
|
||||
//```
|
||||
// </snippet>
|
||||
|
||||
export function test_DummyTestForCodeSnippet() {
|
||||
function _createBorder(): borderModule.Border {
|
||||
// <snippet module="ui/border" title="Border">
|
||||
// ### Creating a Border programmatically
|
||||
// ``` JavaScript
|
||||
@ -27,10 +32,56 @@ export function test_DummyTestForCodeSnippet() {
|
||||
|
||||
var border = new borderModule.Border();
|
||||
border.cornerRadius = 10;
|
||||
border.borderWidth = 1;
|
||||
border.borderWidth = 2;
|
||||
border.borderColor = new colorModule.Color("#FF0000");
|
||||
border.backgroundColor = new colorModule.Color("#FFFF00");
|
||||
|
||||
border.content = button;
|
||||
// ```
|
||||
// </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 {
|
||||
private paint: android.graphics.Paint;
|
||||
private stroke: number;
|
||||
private cornerRadius: number;
|
||||
private backgroundColor: number;
|
||||
private borderColor: number;
|
||||
private 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) {
|
||||
this.paint = new android.graphics.Paint();
|
||||
} else {
|
||||
this.backgroundColor = backgroundColor;
|
||||
this.setColor(backgroundColor);
|
||||
}
|
||||
|
||||
var density = utils.layout.getDisplayDensity();
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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 {
|
||||
if (this.paint) {
|
||||
canvas.drawBitmap(this.bitmap, this.stroke, this.stroke, this.paint);
|
||||
|
Reference in New Issue
Block a user