diff --git a/CrossPlatformModules.csproj b/CrossPlatformModules.csproj
index 59019d963..0da87ed5b 100644
--- a/CrossPlatformModules.csproj
+++ b/CrossPlatformModules.csproj
@@ -193,6 +193,7 @@
+
@@ -1585,7 +1586,7 @@
False
-
+
\ No newline at end of file
diff --git a/apps/tests/ui/view/view-tests-common.ts b/apps/tests/ui/view/view-tests-common.ts
index bed9c0501..14bc3eaff 100644
--- a/apps/tests/ui/view/view-tests-common.ts
+++ b/apps/tests/ui/view/view-tests-common.ts
@@ -3,6 +3,7 @@ import viewModule = require("ui/core/view");
import frame = require("ui/frame");
import page = require("ui/page");
import button = require("ui/button");
+import label = require("ui/label");
import types = require("utils/types");
import helper = require("../../ui/helper");
import color = require("color");
@@ -11,6 +12,7 @@ import proxy = require("ui/core/proxy");
import layoutModule = require("ui/layouts/layout");
import observable = require("data/observable");
import bindable = require("ui/core/bindable");
+import definition = require("./view-tests");
export var test_eachDescendant = function () {
var test = function (views: Array) {
@@ -581,3 +583,56 @@ export var test_binding_style_visibility = function () {
export var test_binding_style_opacity = function () {
property_binding_style_test("opacity", 0.5, 0.6);
}
+
+function _createLabelWithBorder(): viewModule.View {
+ var lbl = new label.Label();
+ lbl.borderRadius = 10;
+ lbl.borderWidth = 2;
+ lbl.borderColor = new color.Color("#FF0000");
+ lbl.backgroundColor = new color.Color("#FFFF00");
+
+ return lbl;
+}
+
+export var testBorderWidth = function () {
+ helper.buildUIAndRunTest(_createLabelWithBorder(), function (views: Array) {
+ var lbl = views[0];
+ var expectedValue = lbl.borderWidth;
+ var actualValue = definition.getNativeBorderWidth(lbl);
+ TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
+ });
+}
+
+export var testCornerRadius = function () {
+ helper.buildUIAndRunTest(_createLabelWithBorder(), function (views: Array) {
+ var lbl = views[0];
+ var expectedValue = lbl.borderRadius;
+ var actualValue = definition.getNativeCornerRadius(lbl);
+ TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
+ });
+}
+
+export var testBorderColor = function () {
+ helper.buildUIAndRunTest(_createLabelWithBorder(), function (views: Array) {
+ var lbl = views[0];
+ TKUnit.assert(definition.checkNativeBorderColor(lbl), "BorderColor not applied correctly!");
+ });
+}
+
+export var testBackgroundColor = function () {
+ helper.buildUIAndRunTest(_createLabelWithBorder(), function (views: Array) {
+ var lbl = views[0];
+ TKUnit.assert(definition.checkNativeBackgroundColor(lbl), "BackgroundColor not applied correctly!");
+ });
+}
+
+export var testBackgroundImage = function () {
+ var lbl = _createLabelWithBorder();
+
+ helper.buildUIAndRunTest(lbl, function (views: Array) {
+ var page = views[1];
+ page.css = "View { background-image: url('~/logo.png') }";
+
+ TKUnit.assert(definition.checkNativeBackgroundImage(lbl), "Style background-image not loaded correctly.");
+ });
+}
\ No newline at end of file
diff --git a/apps/tests/ui/view/view-tests.android.ts b/apps/tests/ui/view/view-tests.android.ts
index 1e8e8abab..c4bdbe121 100644
--- a/apps/tests/ui/view/view-tests.android.ts
+++ b/apps/tests/ui/view/view-tests.android.ts
@@ -253,4 +253,34 @@ export var test_StylePropertiesDefaultValuesCache = function () {
};
helper.do_PageTest_WithStackLayout_AndButton(test);
+}
+
+export function getNativeBorderWidth(v: view.View): number {
+ var bkg = (v.android).getBackground();
+
+ return bkg ? bkg.borderWidth : -1;
+}
+
+export function getNativeCornerRadius(v: view.View): number {
+ var bkg = (v.android).getBackground();
+
+ return bkg ? bkg.cornerRadius : -1;
+}
+
+export function checkNativeBorderColor(v: view.View): boolean {
+ var bkg = (v.android).getBackground();
+
+ return v.borderColor && bkg && bkg.borderColor === v.borderColor.android;
+}
+
+export function checkNativeBackgroundColor(v: view.View): boolean {
+ var bkg = (v.android).getBackground();
+
+ return v.backgroundColor && bkg && bkg.backgroundColor === v.backgroundColor.android;
+}
+
+export function checkNativeBackgroundImage(v: view.View): boolean {
+ var bkg = (v.android).getBackground();
+
+ return bkg && bkg.bitmap !== undefined;
}
\ No newline at end of file
diff --git a/apps/tests/ui/view/view-tests.d.ts b/apps/tests/ui/view/view-tests.d.ts
new file mode 100644
index 000000000..90108ddd8
--- /dev/null
+++ b/apps/tests/ui/view/view-tests.d.ts
@@ -0,0 +1,12 @@
+//@private
+import view = require("ui/core/view");
+
+export declare function getNativeBorderWidth(v: view.View): number;
+
+export declare function getNativeCornerRadius(v: view.View): number;
+
+export declare function checkNativeBorderColor(v: view.View): boolean
+
+export declare function checkNativeBackgroundColor(v: view.View): boolean;
+
+export declare function checkNativeBackgroundImage(v: view.View): boolean
\ No newline at end of file
diff --git a/apps/tests/ui/view/view-tests.ios.ts b/apps/tests/ui/view/view-tests.ios.ts
index 00a42dcfc..9ccff422d 100644
--- a/apps/tests/ui/view/view-tests.ios.ts
+++ b/apps/tests/ui/view/view-tests.ios.ts
@@ -1,5 +1,26 @@
import commonTests = require("./view-tests-common");
+import view = require("ui/core/view");
// merge the exports of the application_common file with the exports of this file
declare var exports;
require("utils/module-merge").merge(commonTests, exports);
+
+export function getNativeBorderWidth(v: view.View): number {
+ return (v.ios).layer.borderWidth;
+}
+
+export function getNativeCornerRadius(v: view.View): number {
+ return (v.ios).layer.cornerRadius;
+}
+
+export function checkNativeBorderColor(v: view.View): boolean {
+ return v.borderColor && (v.ios).layer.borderColor === v.borderColor.ios.CGColor;
+}
+
+export function checkNativeBackgroundColor(v: view.View): boolean {
+ return v.backgroundColor && (v.ios).backgroundColor.isEqual(v.backgroundColor.ios);
+}
+
+export function checkNativeBackgroundImage(v: view.View): boolean {
+ return (v.ios).backgroundColor !== undefined;
+}
\ No newline at end of file