Files
NativeScript/tests/app/ui/search-bar/search-bar-tests.ts
Alexander Vakrilov 23757e5dfc Enable recycling of nativeView 2 (#4467)
* enable recycling of nativeView

* backgroundInternal is reset if setting new value leads to background.isEmpty() == true.

* android background.getDefault always return copy of the background. Now all controls that mutate the background can be reset to initial state (e.g. Button & ActionBar)
passing resources to copied background so it respect density.
fix properties initNativeView

* reset padding when backgroundInternal is reset.

* Fix text reset
Fix padding reset

* fix tsc errors

* fix ugly text rendering.

* Add unit tests for recycling native views
Fix several issues that came from the above tests
Fix maxLength property missing a converter callback
Remove old files

* Remove old files

* Revert backgroundInternal setter

* change the order of tests so that appium can work again

* Remove suggestion on every TextView & TextField init (strangely it is enabled after view is recycled....)

* Fix function to get parent layout if specified

* Button stateListAnimator restored when button is recycled
zIndex defaultValue is now undefined instead of NaN

* revert zIndex.setNative to always clear stateListAnimator because it was breaking one UI test (setting value=0 was returning the previous stateListAnimator)

* fix search-bar backgound-color recycling

* Fix alignments setters

* Fix imageView recycling
Fix button recycling
Fix edit-text recycling
resetNativeView is called only if recycleNativeView flag is true

* Fix incorrect merge

* Fix text-view & text-field textTransform

* Fix EditText text reset

* Fix runtime crash on ARM emulator API 21

* Fix text-base minHeight. maxHeight reset
Fix reset of isUserInteractionEnabled
2017-06-29 18:01:22 +03:00

80 lines
3.0 KiB
TypeScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import * as TKUnit from "../../TKUnit";
import * as helper from "../helper";
import * as viewModule from "tns-core-modules/ui/core/view";
import * as searchBarTestsNative from "./search-bar-tests-native";
import * as colorModule from "tns-core-modules/color";
import * as observable from "tns-core-modules/data/observable";
// >> article-require-searchbar-module
import * as searchBarModule from "tns-core-modules/ui/search-bar";
// << article-require-searchbar-module
// ### Declaring a SearchBar.
//``` XML
// <Page>
// <SearchBar text="{{ search }}" />
// </Page>
//```
// </snippet>
var _createSearchBarFunc = function (): searchBarModule.SearchBar {
// >> article-creating-searchbar
var searchBar = new searchBarModule.SearchBar();
// << article-creating-searchbar
searchBar.text = "searchBar";
return searchBar;
};
export function test_recycling() {
helper.nativeView_recycling_test(() => new searchBarModule.SearchBar());
}
export var testSearchBarHintColorAndroid = function () {
helper.buildUIAndRunTest(_createSearchBarFunc(), function (views: Array<viewModule.View>) {
var searchBar = <searchBarModule.SearchBar>views[0];
searchBar.text = "";
searchBar.hint = "hint color test";
var expectedNormalizedValue;
var actualValue;
searchBar.textFieldHintColor = new colorModule.Color("blue");
expectedNormalizedValue = "#0000FF"; // blue
actualValue = searchBarTestsNative.getNativeHintColor(searchBar).hex;
TKUnit.assert(actualValue === expectedNormalizedValue, "Actual: " + actualValue + "; Expected: " + expectedNormalizedValue);
searchBar.textFieldHintColor = new colorModule.Color("red");
expectedNormalizedValue = "#FF0000"; // red
actualValue = searchBarTestsNative.getNativeHintColor(searchBar).hex;
TKUnit.assert(actualValue === expectedNormalizedValue, "Actual: " + actualValue + "; Expected: " + expectedNormalizedValue);
});
};
export var testSearchBarFontSize = function () {
helper.buildUIAndRunTest(_createSearchBarFunc(), function (views: Array<viewModule.View>) {
var searchBar = <searchBarModule.SearchBar>views[0];
searchBar.text = "";
searchBar.hint = "hint font-size test";
var expectedValue = 30;
var actualValue;
searchBar.style.fontSize = expectedValue;
actualValue = searchBarTestsNative.getNativeFontSize(searchBar);
TKUnit.assertAreClose(actualValue, expectedValue, 0.2);
});
};
export function test_DummyTestForSnippetOnly() {
// >> article-searching
var searchBar = new searchBarModule.SearchBar();
searchBar.on(searchBarModule.SearchBar.submitEvent, function (args: observable.EventData) {
console.log("Search for " + (<searchBarModule.SearchBar>args.object).text);
});
searchBar.on(searchBarModule.SearchBar.clearEvent, function (args: observable.EventData) {
console.log("Clear");
});
// << article-searching
}