From f0f6992cf01c9e6d22bb259cb0efda99d8eb1253 Mon Sep 17 00:00:00 2001 From: hshristov Date: Thu, 9 Apr 2015 17:22:50 +0300 Subject: [PATCH] Remove Action property from Intent class. Location tests are not executed on emulator. Label test made for iOS only. Change frame.android.action property to method. Image measured widht/height are now floor (like in android runtime). --- android17.d.ts | 1 - apps/tests/testRunner.ts | 14 +++++++++++++- apps/tests/ui/label/label-tests.ts | 17 ++++++++++------- ui/frame/frame.android.ts | 4 ++-- ui/image/image-common.ts | 4 ++-- 5 files changed, 27 insertions(+), 13 deletions(-) diff --git a/android17.d.ts b/android17.d.ts index 6e680074a..1e5df00d5 100644 --- a/android17.d.ts +++ b/android17.d.ts @@ -85563,7 +85563,6 @@ declare module android { static class: java.lang.Class; Type: string; Data: android.net.Uri; - Action: string; SourceBounds: android.graphics.Rect; ClipData: android.content.ClipData; Package: string; diff --git a/apps/tests/testRunner.ts b/apps/tests/testRunner.ts index a2863746d..909ba2ce1 100644 --- a/apps/tests/testRunner.ts +++ b/apps/tests/testRunner.ts @@ -4,6 +4,16 @@ import trace = require("trace"); import frameModule = require("ui/frame"); frameModule.Frame.defaultAnimatedNavigation = false; +function isRunningOnEmulator(): boolean { + // This checks are not good enough to be added to modules but keeps unittests green. + + return android.os.Build.FINGERPRINT.indexOf("generic") > -1 || + android.os.Build.HARDWARE.toLowerCase() === "goldfish" || + android.os.Build.HARDWARE.toLowerCase() === "donatello" || // VS Emulator + android.os.Build.PRODUCT.toLocaleLowerCase().indexOf("sdk") > -1 || + android.os.Build.PRODUCT.toLocaleLowerCase().indexOf("emulator") > -1; // VS Emulator +} + export var allTests = {}; allTests["DOCKLAYOUT"] = require("./layouts/dock-layout-tests"); allTests["WRAPLAYOUT"] = require("./layouts/wrap-layout-tests"); @@ -16,7 +26,6 @@ allTests["SCROLL-VIEW"] = require("./ui/scroll-view/scroll-view-tests"); allTests["APPLICATION"] = require("./application-tests"); allTests["FILE SYSTEM"] = require("./file-system-tests"); allTests["HTTP"] = require("./http-tests"); -allTests["LOCATION"] = require("./location-tests"); allTests["LOCAL SETTINGS"] = require("./local-settings-tests"); allTests["IMAGE SOURCE"] = require("./image-source-tests"); allTests["TIMER"] = require("./timer-tests"); @@ -51,6 +60,9 @@ allTests["LIST-PICKER"] = require("./ui/list-picker/list-picker-tests"); allTests["DATE-PICKER"] = require("./ui/date-picker/date-picker-tests"); allTests["TIME-PICKER"] = require("./ui/time-picker/time-picker-tests"); allTests["WEB-VIEW"] = require("./ui/web-view/web-view-tests"); +if (!isRunningOnEmulator()) { + allTests["LOCATION"] = require("./location-tests"); +} var testsWithLongDelay = { testLocation: 10000, diff --git a/apps/tests/ui/label/label-tests.ts b/apps/tests/ui/label/label-tests.ts index a13824d81..e03051e93 100644 --- a/apps/tests/ui/label/label-tests.ts +++ b/apps/tests/ui/label/label-tests.ts @@ -93,16 +93,19 @@ export var test_measuredWidth_is_not_clipped = function () { label.text = "i"; label.fontSize = 9; - var test = function (views: Array) { + if (label.ios) { - TKUnit.waitUntilReady(() => { return label.isLayoutValid; }); + var test = function (views: Array) { - var expectedValue = 3; - var measuredWidth = label.getMeasuredWidth(); - TKUnit.assertEqual(measuredWidth, expectedValue, "measuredWidth should not be rounded down."); + TKUnit.waitUntilReady(() => { return label.isLayoutValid; }); + + var expectedValue = 3; + var measuredWidth = label.getMeasuredWidth(); + TKUnit.assertEqual(measuredWidth, expectedValue, "measuredWidth should not be rounded down."); + } + + helper.buildUIAndRunTest(label, test); } - - helper.buildUIAndRunTest(label, test); } export var test_Set_TextWrap_TNS = function () { diff --git a/ui/frame/frame.android.ts b/ui/frame/frame.android.ts index 57a74fde6..6f8f62468 100644 --- a/ui/frame/frame.android.ts +++ b/ui/frame/frame.android.ts @@ -624,7 +624,7 @@ class AndroidFrame extends observable.Observable implements definition.AndroidFr } // can go back only if it is not the main one. - return this._activity.getIntent().Action !== android.content.Intent.ACTION_MAIN; + return this._activity.getIntent().getAction() !== android.content.Intent.ACTION_MAIN; } public reset() { @@ -682,7 +682,7 @@ function findPageForFragment(fragment: android.app.Fragment, frame: Frame) { function startActivity(activity: android.app.Activity, entry: definition.NavigationEntry) { var intent = new android.content.Intent(activity, (com).tns.NativeScriptActivity.class); - intent.Action = android.content.Intent.ACTION_DEFAULT; + intent.setAction(android.content.Intent.ACTION_DEFAULT); // TODO: Put the navigation context (if any) in the intent activity.startActivity(intent); } \ No newline at end of file diff --git a/ui/image/image-common.ts b/ui/image/image-common.ts index a9b491128..33ed43351 100644 --- a/ui/image/image-common.ts +++ b/ui/image/image-common.ts @@ -138,8 +138,8 @@ export class Image extends view.View implements definition.Image { if (nativeWidth !== 0 && nativeHeight !== 0 && (finiteWidth || finiteHeight)) { var scale = Image.computeScaleFactor(width, height, finiteWidth, finiteHeight, nativeWidth, nativeHeight, this.stretch); - var resultW = nativeWidth * scale.width; - var resultH = nativeHeight * scale.height; + var resultW = Math.floor(nativeWidth * scale.width); + var resultH = Math.floor(nativeHeight * scale.height); measureWidth = finiteWidth ? Math.min(resultW, width) : resultW; measureHeight = finiteHeight ? Math.min(resultH, height) : resultH;