implement menuOptions

This commit is contained in:
hshristov
2015-03-24 17:47:10 +02:00
parent 70756fb115
commit 23b1825fc7
20 changed files with 428 additions and 369 deletions

View File

@ -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" />

View File

@ -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;

View File

@ -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();
}
}