2010-09-28 18:20:02 -05:00
|
|
|
/* Authors:
|
|
|
|
* Adam Young <ayoung@redhat.com>
|
|
|
|
*
|
|
|
|
* Copyright (C) 2010 Red Hat
|
|
|
|
* see file 'COPYING' for use and warranty information
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License as
|
|
|
|
* published by the Free Software Foundation; version 2 only
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test("Testing nav_create().", function() {
|
|
|
|
|
|
|
|
var mock_tabs_lists =
|
|
|
|
[
|
|
|
|
{ name:'identity', label:'IDENTITY', children: [
|
|
|
|
{name:'user', label:'Users', setup:mock_setup_user},
|
2010-09-30 15:37:33 -05:00
|
|
|
{name:'group', label:'Users', setup:mock_setup_group}
|
2010-09-28 18:20:02 -05:00
|
|
|
]}];
|
|
|
|
function mock_setup_user (jobj){
|
|
|
|
user_mock_called = true;
|
|
|
|
same(jobj[0].id,'user','user id');
|
|
|
|
same(jobj[0].nodeName,'DIV','user div');
|
|
|
|
}
|
|
|
|
function mock_setup_group (jobj){
|
|
|
|
group_mock_called = true;
|
|
|
|
same(jobj[0].id,'group','group id');
|
|
|
|
same(jobj[0].nodeName,'DIV','group Div');
|
|
|
|
|
|
|
|
}
|
2010-10-27 22:32:30 -05:00
|
|
|
IPA.metadata = {};
|
2010-09-29 00:52:56 -05:00
|
|
|
var navigation = $('<div id="navigation"/>').appendTo(document.body);
|
2010-09-28 18:20:02 -05:00
|
|
|
var user_mock_called = false;
|
|
|
|
var group_mock_called = false;
|
2010-09-30 15:37:33 -05:00
|
|
|
nav_create(mock_tabs_lists, navigation, 'tabs');
|
2010-09-29 00:52:56 -05:00
|
|
|
ok(user_mock_called, "mock user setup was called");
|
|
|
|
ok(!group_mock_called, "mock group setup was not called because the tab is inactive");
|
2010-09-28 18:20:02 -05:00
|
|
|
same( navigation[0].children.length, 2, "Two Child tabs");
|
|
|
|
same( navigation[0].children[1].id, 'identity', "Identity Tab");
|
|
|
|
same( navigation[0].children[1].children[1].id, 'user', "User Tab");
|
|
|
|
same( navigation[0].children[1].children[2].id, 'group', "User Tab");
|
2010-09-29 00:52:56 -05:00
|
|
|
navigation.remove();
|
2010-09-28 18:20:02 -05:00
|
|
|
});
|
|
|
|
|
2010-09-30 15:37:33 -05:00
|
|
|
test("Testing nav_update_tabs() with valid index.", function() {
|
2010-09-28 18:20:02 -05:00
|
|
|
|
2010-09-30 15:37:33 -05:00
|
|
|
var orig_push_state = nav_push_state;
|
|
|
|
var orig_get_state = nav_get_state;
|
|
|
|
var orig_remove_state = nav_remove_state;
|
|
|
|
|
|
|
|
var state = {};
|
|
|
|
|
|
|
|
nav_push_state = function(params) {
|
|
|
|
$.extend(state, params);
|
|
|
|
};
|
|
|
|
nav_get_state = function(key) {
|
|
|
|
return state[key];
|
|
|
|
};
|
|
|
|
nav_remove_state = function(key) {
|
|
|
|
delete state[key];
|
|
|
|
};
|
2010-09-28 18:20:02 -05:00
|
|
|
|
|
|
|
var mock_tabs_lists =
|
|
|
|
[
|
|
|
|
{ name:'identity', label:'IDENTITY', children: [
|
|
|
|
{name:'one', label:'One', setup: function (){}},
|
2010-09-30 15:37:33 -05:00
|
|
|
{name:'two', label:'Two', setup: function (){}}
|
2010-09-28 18:20:02 -05:00
|
|
|
]}];
|
|
|
|
|
2010-09-29 00:52:56 -05:00
|
|
|
var navigation = $('<div id="navigation"/>').appendTo(document.body);
|
2010-09-28 18:20:02 -05:00
|
|
|
|
2010-09-30 15:37:33 -05:00
|
|
|
nav_create(mock_tabs_lists, navigation, 'tabs');
|
|
|
|
|
|
|
|
nav_push_state({"identity":1});
|
|
|
|
nav_update_tabs();
|
|
|
|
|
|
|
|
same(
|
|
|
|
navigation.tabs('option', 'selected'), 0,
|
|
|
|
"Active tab at level 1"
|
|
|
|
);
|
2010-09-28 18:20:02 -05:00
|
|
|
|
2010-09-30 15:37:33 -05:00
|
|
|
same(
|
|
|
|
$('#identity').tabs('option', 'selected'), 1,
|
|
|
|
"Active tab at level 2"
|
|
|
|
);
|
|
|
|
|
|
|
|
nav_remove_state("identity");
|
2010-09-28 18:20:02 -05:00
|
|
|
|
2010-09-29 00:52:56 -05:00
|
|
|
navigation.remove();
|
2010-09-30 15:37:33 -05:00
|
|
|
|
|
|
|
nav_push_state = orig_push_state;
|
|
|
|
nav_get_state = orig_get_state;
|
|
|
|
nav_remove_state = orig_remove_state;
|
|
|
|
});
|
|
|
|
|
|
|
|
test("Testing nav_update_tabs() with out-of-range index.", function() {
|
|
|
|
|
|
|
|
var orig_push_state = nav_push_state;
|
|
|
|
var orig_get_state = nav_get_state;
|
|
|
|
var orig_remove_state = nav_remove_state;
|
|
|
|
|
|
|
|
var state = {};
|
|
|
|
|
|
|
|
nav_push_state = function(params) {
|
|
|
|
$.extend(state, params);
|
|
|
|
};
|
|
|
|
nav_get_state = function(key) {
|
|
|
|
return state[key];
|
|
|
|
};
|
|
|
|
nav_remove_state = function(key) {
|
|
|
|
delete state[key];
|
|
|
|
};
|
|
|
|
|
|
|
|
var mock_tabs_lists =
|
|
|
|
[
|
|
|
|
{ name:'identity', label:'IDENTITY', children: [
|
|
|
|
{name:'one', label:'One', setup: function (){}},
|
|
|
|
{name:'two', label:'Two', setup: function (){}}
|
|
|
|
]}];
|
|
|
|
|
|
|
|
var navigation = $('<div id="navigation"/>').appendTo(document.body);
|
|
|
|
|
|
|
|
nav_create(mock_tabs_lists, navigation, 'tabs');
|
|
|
|
|
|
|
|
nav_push_state({"identity":2});
|
|
|
|
nav_update_tabs();
|
|
|
|
|
|
|
|
same(
|
|
|
|
navigation.tabs('option', 'selected'), 0,
|
|
|
|
"Active tab at level 1"
|
|
|
|
);
|
|
|
|
|
|
|
|
same(
|
|
|
|
$('#identity').tabs('option', 'selected'), 0,
|
|
|
|
"Active tab at level 2"
|
|
|
|
);
|
|
|
|
|
|
|
|
nav_remove_state("identity");
|
|
|
|
|
|
|
|
navigation.remove();
|
|
|
|
|
|
|
|
nav_push_state = orig_push_state;
|
|
|
|
nav_get_state = orig_get_state;
|
|
|
|
nav_remove_state = orig_remove_state;
|
2010-09-28 18:20:02 -05:00
|
|
|
});
|