mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 03:31:45 +08:00
implement menuOptions
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
<Page loaded="pageLoaded">
|
||||
<Page.optionsMenu>
|
||||
<MenuItem text="test" tap="optionTap"/>
|
||||
<MenuItem text="with icon" tap="optionTap" icon="~/app/test-icon.png"/>
|
||||
<MenuItem text="test" tap="optionTap" android.position="popup" />
|
||||
<MenuItem text="with icon" tap="optionTap" icon="~/app/test-icon.png" android.position="actionBar" />
|
||||
</Page.optionsMenu>
|
||||
<StackLayout>
|
||||
<Button text="button" />
|
||||
|
@ -34,6 +34,73 @@ export function addLabelToPage(page: PageModule.Page, text?: string) {
|
||||
page.content = label;
|
||||
}
|
||||
|
||||
export function test_menuItem_inherit_bindingContext() {
|
||||
|
||||
var page: PageModule.Page;
|
||||
var label: LabelModule.Label;
|
||||
var context = { text: "item" };
|
||||
|
||||
var pageFactory = function (): PageModule.Page {
|
||||
page = new PageModule.Page();
|
||||
page.bindingContext = context;
|
||||
var menuItem = new PageModule.MenuItem();
|
||||
|
||||
menuItem.bind({
|
||||
sourceProperty: "text",
|
||||
targetProperty: "text"
|
||||
});
|
||||
|
||||
page.optionsMenu.addItem(menuItem);
|
||||
|
||||
label = new LabelModule.Label();
|
||||
label.text = "Text";
|
||||
page.content = label;
|
||||
return page;
|
||||
};
|
||||
|
||||
helper.navigate(pageFactory);
|
||||
|
||||
try {
|
||||
TKUnit.assertEqual(page.optionsMenu.getItemAt(0).text, "item", "menuItem.text should equal to 'item'");
|
||||
}
|
||||
finally {
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
export function test_Setting_OptionsMenu_doesnt_thrown() {
|
||||
|
||||
var page: PageModule.Page;
|
||||
var label: LabelModule.Label;
|
||||
var gotException = false;
|
||||
|
||||
var pageFactory = function (): PageModule.Page {
|
||||
page = new PageModule.Page();
|
||||
var menuItem = new PageModule.MenuItem();
|
||||
menuItem.text = "Item";
|
||||
page.optionsMenu.addItem(menuItem);
|
||||
|
||||
label = new LabelModule.Label();
|
||||
label.text = "Text";
|
||||
page.content = label;
|
||||
return page;
|
||||
};
|
||||
|
||||
try {
|
||||
helper.navigate(pageFactory);
|
||||
}
|
||||
catch (e) {
|
||||
gotException = true;
|
||||
}
|
||||
|
||||
try {
|
||||
TKUnit.assert(!gotException, "Expected: false, Actual: " + gotException);
|
||||
}
|
||||
finally {
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
export function test_AfterPageLoaded_is_called_NativeInstance_is_created() {
|
||||
|
||||
var page: PageModule.Page;
|
||||
|
@ -3,11 +3,12 @@ import PageModule = require("ui/page");
|
||||
import TKUnit = require("../../TKUnit");
|
||||
import LabelModule = require("ui/label");
|
||||
import helper = require("../helper");
|
||||
import view = require("ui/core/view");
|
||||
|
||||
declare var exports;
|
||||
require("utils/module-merge").merge(PageTestCommon, exports);
|
||||
|
||||
export var test_NavigateToNewPage_InnerControl = function () {
|
||||
export function test_NavigateToNewPage_InnerControl() {
|
||||
var testPage: PageModule.Page;
|
||||
var pageFactory = function (): PageModule.Page {
|
||||
testPage = new PageModule.Page();
|
||||
@ -24,3 +25,38 @@ export var test_NavigateToNewPage_InnerControl = function () {
|
||||
TKUnit.assert(label.android === undefined, "InnerControl.android should be undefined after navigate back.");
|
||||
TKUnit.assert(label.isLoaded === false, "InnerControl.isLoaded should become false after navigating back");
|
||||
}
|
||||
|
||||
export function test_NavBar_isVisible_when_MenuItems_areSet() {
|
||||
|
||||
var page: PageModule.Page;
|
||||
var label: LabelModule.Label;
|
||||
var navBarIsVisible = false;
|
||||
|
||||
var handler = function (data) {
|
||||
page.off(view.knownEvents.loaded, handler);
|
||||
navBarIsVisible = (<any>page.frame.ios).showNavigationBar;
|
||||
}
|
||||
|
||||
var pageFactory = function (): PageModule.Page {
|
||||
page = new PageModule.Page();
|
||||
page.on(view.knownEvents.loaded, handler);
|
||||
|
||||
var mi = new PageModule.MenuItem();
|
||||
mi.text = "B";
|
||||
page.optionsMenu.addItem(mi);
|
||||
label = new LabelModule.Label();
|
||||
label.text = "Text";
|
||||
page.content = label;
|
||||
return page;
|
||||
};
|
||||
|
||||
helper.navigate(pageFactory);
|
||||
|
||||
try {
|
||||
TKUnit.assert(navBarIsVisible, "Expected: true, Actual: " + navBarIsVisible);
|
||||
}
|
||||
finally {
|
||||
page.off(view.knownEvents.loaded, handler);
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user