summaryrefslogtreecommitdiffstats
path: root/install/ui/test
diff options
context:
space:
mode:
authorAdam Young <ayoung@redhat.com>2011-07-25 12:15:14 -0400
committerAdam Young <ayoung@redhat.com>2011-07-28 14:17:25 -0400
commitb36df6e9b9c1104d37fe14782a7e21e57097a7c0 (patch)
tree1eca6d4b0f7127b01f2e366919981ed90090ee95 /install/ui/test
parent264ed38fa206537d7b160ea5d7586d071575c610 (diff)
downloadfreeipa-b36df6e9b9c1104d37fe14782a7e21e57097a7c0.tar.gz
freeipa-b36df6e9b9c1104d37fe14782a7e21e57097a7c0.tar.xz
freeipa-b36df6e9b9c1104d37fe14782a7e21e57097a7c0.zip
removing setters setup and init
change widget and widget unit tests to hold on to entity, not entity name. Replacing entity_name with entity.name in most places. The one exception is columns for table_widget. Widgets that refer to other entities have to have late resolution of the entity object, due to circular dependencies. cleanup entity assignment. removed template and layout, merged setup into create adder dialogs adjust height for external removed init from widget, isection, association, facet, host and service Make unit tests use factory. fix functional tests to click find link correctly. tweak to activation test, but still broken. moved initialization code to the end use --all for hbacrule find, so the type shows up now fixed dns exception code and exception handling for get_entity replace metadata look up with value from entity. fixed author lines removed duplicate columns in managed by facets. tweak to nav fix in order to initialize tab. more defensive code update metadata for true false one line init for entity_name in widget move init code to end of constructor functions moved constants to start of function for adder_dialog external fields for dialogs initialized at dialog creation sudo sections: move add fields and columns to widget definition. The parameter validation in IPA.column ...This is precondition checking. Note that it merely throws an exception if the entity_name is not set. I want this stuff at the top of the function so that it is obvious to people looking to use them what is required. I added a comment to make this clear, but I'd like to keep precondition checking at the top of the function. decreased the scope of the pkey_name and moved the initiailzation fof columns into the setup_column function for association_tables return false at the end of click handler removed blank labels in sudo command section fix radio buttons for sudo category fixed table side for adder dialogs with external fields comments for future direction with add_columns https://fedorahosted.org/freeipa/ticket/1451 https://fedorahosted.org/freeipa/ticket/1462 https://fedorahosted.org/freeipa/ticket/1493 https://fedorahosted.org/freeipa/ticket/1497 https://fedorahosted.org/freeipa/ticket/1532 https://fedorahosted.org/freeipa/ticket/1534
Diffstat (limited to 'install/ui/test')
-rw-r--r--install/ui/test/aci_tests.js19
-rw-r--r--install/ui/test/association_tests.js11
-rw-r--r--install/ui/test/data/ipa_init.json101
-rw-r--r--install/ui/test/details_tests.js30
-rw-r--r--install/ui/test/entity_tests.js3
-rw-r--r--install/ui/test/navigation_tests.js6
-rw-r--r--install/ui/test/widget_tests.js133
7 files changed, 132 insertions, 171 deletions
diff --git a/install/ui/test/aci_tests.js b/install/ui/test/aci_tests.js
index 604a48b3a..acb4e7dab 100644
--- a/install/ui/test/aci_tests.js
+++ b/install/ui/test/aci_tests.js
@@ -21,6 +21,7 @@
var target_container;
var target_section;
+var entity = {name:'bogus'};
module('aci',{
setup: function() {
@@ -36,8 +37,11 @@ module('aci',{
);
target_container = $('<div id="target"/>').appendTo(document.body);
- target_section = IPA.target_section({name: 'target', label: 'Target'});
- target_section.init();
+ target_section = IPA.target_section({
+ name: 'target',
+ label: 'Target',
+ entity:entity
+ });
target_section.create(target_container);
},
teardown: function() {
@@ -56,12 +60,12 @@ test("IPA.attributes_widget.", function() {
var widget = IPA.attributes_widget({
name: 'attrs',
- object_type: 'user'
+ object_type: 'user',
+ entity:entity
+
});
- widget.init();
widget.create(container);
- widget.setup(container);
var table = $('table', container);
@@ -112,12 +116,11 @@ test("IPA.rights_widget.", function() {
});
var widget = IPA.rights_widget({
- name: 'permissions'
+ name: 'permissions',
+ entity:entity
});
- widget.init();
widget.create(container);
- widget.setup(container);
var inputs = $('input', container);
diff --git a/install/ui/test/association_tests.js b/install/ui/test/association_tests.js
index 7eea1fc91..769355ae8 100644
--- a/install/ui/test/association_tests.js
+++ b/install/ui/test/association_tests.js
@@ -32,7 +32,7 @@ test("Testing serial_associator().", function() {
var params = {
method: 'add_member',
pkey: 'test',
- entity_name: 'user',
+ entity: {name:'user'},
other_entity: 'group'
};
@@ -78,7 +78,7 @@ test("Testing serial_associator().", function() {
test("Testing bulk_associator().", function() {
- expect(5);
+ expect(4);
var orig_ipa_command = IPA.command;
@@ -87,7 +87,7 @@ test("Testing bulk_associator().", function() {
var params = {
method: "add_member",
pkey: "test",
- entity_name: "user",
+ entity: {name:"user"},
other_entity: "group"
};
@@ -101,11 +101,6 @@ test("Testing bulk_associator().", function() {
counter++;
equals(
- that.entity, params.entity_name,
- 'Checking IPA.command() parameter: entity'
- );
-
- equals(
that.method, params.method,
'Checking IPA.command() parameter: method'
);
diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json
index 7d9d234e9..10d3ad519 100644
--- a/install/ui/test/data/ipa_init.json
+++ b/install/ui/test/data/ipa_init.json
@@ -2351,7 +2351,7 @@
"minlength": null,
"multivalue": true,
"name": "usercertificate",
- "noextrawhitespace": true,
+ "noextrawhitespace": false,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9651,8 +9651,13 @@
"sudocmd",
"sudocommand",
"sudohost",
+ "sudonotafter",
+ "sudonotbefore",
"sudooption",
+ "sudoorder",
"sudorunas",
+ "sudorunasgroup",
+ "sudorunasuser",
"sudouser",
"supportedalgorithms",
"supportedcontrol",
@@ -10139,7 +10144,7 @@
"include": null,
"label": "Time to live",
"maxvalue": 2147483647,
- "minvalue": null,
+ "minvalue": -2147483648,
"multivalue": false,
"name": "dnsttl",
"primary_key": false,
@@ -10556,7 +10561,7 @@
"include": null,
"label": "SOA time to live",
"maxvalue": 2147483647,
- "minvalue": null,
+ "minvalue": -2147483648,
"multivalue": false,
"name": "dnsttl",
"primary_key": false,
@@ -10922,7 +10927,7 @@
"include": null,
"label": "GID",
"maxvalue": 2147483647,
- "minvalue": null,
+ "minvalue": -2147483648,
"multivalue": false,
"name": "gidnumber",
"primary_key": false,
@@ -10973,7 +10978,6 @@
"container_dn": "cn=hbac",
"default_attributes": [
"cn",
- "accessruletype",
"ipaenabledflag",
"description",
"usercategory",
@@ -11080,8 +11084,13 @@
"cli_short_name": null,
"default": "allow",
"doc": "Rule type (allow)",
- "exclude": null,
- "flags": [],
+ "exclude": [
+ "webui"
+ ],
+ "flags": [
+ "no_option",
+ "no_output"
+ ],
"hint": null,
"include": null,
"label": "Rule type",
@@ -15450,7 +15459,7 @@
"include": null,
"label": "GID",
"maxvalue": 2147483647,
- "minvalue": null,
+ "minvalue": -2147483648,
"multivalue": false,
"name": "gidnumber",
"primary_key": false,
@@ -15891,6 +15900,7 @@
"details": "Settings",
"search": "Search"
},
+ "false": "False",
"login": {
"header": "Logged In As"
},
@@ -16132,6 +16142,7 @@
"role": "Role Based Access Control",
"sudo": "Sudo"
},
+ "true": "True",
"widget": {
"next": "Next",
"optional": "Optional field: click to show",
@@ -16160,30 +16171,30 @@
"Administrator"
],
"gidnumber": [
- "193200000"
+ "349800000"
],
"homedirectory": [
"/home/admin"
],
"ipauniqueid": [
- "c300021e-a445-11e0-80b9-525400b55a47"
+ "3d3de554-b49b-11e0-921a-525400b55a47"
],
"krbextradata": [
{
"__base64__": "AAgBAA=="
},
{
- "__base64__": "AAL2bA5Ocm9vdC9hZG1pbkBTRVJWRVIxNS5BWU9VTkcuQk9TVE9OLkRFVkVMLlJFREhBVC5DT00A"
+ "__base64__": "AALU0ylOcm9vdC9hZG1pbkBTRVJWRVIxNS5BWU9VTkcuQk9TVE9OLkRFVkVMLlJFREhBVC5DT00A"
}
],
"krblastpwdchange": [
- "20110702005726Z"
+ "20110722194732Z"
],
"krblastsuccessfulauth": [
- "20110705180548Z"
+ "20110725162159Z"
],
"krbpasswordexpiration": [
- "20110930005726Z"
+ "20111020194732Z"
],
"krbprincipalname": [
"admin@SERVER15.AYOUNG.BOSTON.DEVEL.REDHAT.COM"
@@ -16211,7 +16222,7 @@
"admin"
],
"uidnumber": [
- "193200000"
+ "349800000"
]
}
],
@@ -16219,7 +16230,7 @@
"truncated": false
},
{
- "count": 67,
+ "count": 68,
"error": null,
"result": {
"basedn": "dc=server15,dc=ayoung,dc=boston,dc=devel,dc=redhat,dc=com",
@@ -16278,7 +16289,7 @@
"mount_jsonserver": "json",
"mount_xmlserver": "xml",
"prompt_all": false,
- "ra_plugin": "dogtag",
+ "ra_plugin": "selfsign",
"realm": "SERVER15.AYOUNG.BOSTON.DEVEL.REDHAT.COM",
"rpc_json_uri": "http://localhost:8888/ipa/json",
"script": "/var/www/mod_wsgi",
@@ -16286,12 +16297,13 @@
"startup_traceback": false,
"validate_api": false,
"verbose": 0,
+ "wait_for_attr": false,
"webui_assets_dir": null,
"webui_prod": true,
"xmlrpc_uri": "https://server15.ayoung.boston.devel.redhat.com/ipa/xml"
},
- "summary": "67 variables",
- "total": 67
+ "summary": "68 variables",
+ "total": 68
},
{
"error": null,
@@ -16300,54 +16312,11 @@
"value": ""
},
{
+ "count": 0,
"error": null,
- "id": null,
- "result": {
- "count": 2,
- "result": [
- {
- "accessruletype": [
- "allow"
- ],
- "cn": [
- "allow_all"
- ],
- "description": [
- "Allow all users to access any host from any host"
- ],
- "dn": "ipauniqueid=75841b24-acba-11e0-aeb9-525400b55a47,cn=hbac,dc=server15,dc=ayoung,dc=boston,dc=devel,dc=redhat,dc=com",
- "hostcategory": [
- "all"
- ],
- "ipaenabledflag": [
- "TRUE"
- ],
- "servicecategory": [
- "all"
- ],
- "sourcehostcategory": [
- "all"
- ],
- "usercategory": [
- "all"
- ]
- },
- {
- "accessruletype": [
- "allow"
- ],
- "cn": [
- "allow_somnething"
- ],
- "dn": "ipauniqueid=137053da-acc4-11e0-8d43-525400b55a47,cn=hbac,dc=server15,dc=ayoung,dc=boston,dc=devel,dc=redhat,dc=com",
- "ipaenabledflag": [
- "TRUE"
- ]
- }
- ],
- "summary": "2 HBAC rules matched",
- "truncated": false
- }
+ "result": [],
+ "summary": "0 HBAC rules matched",
+ "truncated": false
}
]
}
diff --git a/install/ui/test/details_tests.js b/install/ui/test/details_tests.js
index 28e2029de..e06ddc23c 100644
--- a/install/ui/test/details_tests.js
+++ b/install/ui/test/details_tests.js
@@ -59,13 +59,13 @@ module('details', {
test("Testing IPA.details_section.create().", function() {
var section = IPA.details_list_section({
+ entity: IPA.get_entity('user'),
name:'IDIDID', label:'NAMENAMENAME'}).
text({name:'cn'}).
text({name:'uid'}).
text({name:'mail'});
section.entity_name = 'user';
- section.init();
var fields = section.fields.values;
var container = $("<div/>");
@@ -116,7 +116,7 @@ test("Testing IPA.details_section.create().", function() {
-test("Testing details lifecycle: create, setup, load.", function(){
+test("Testing details lifecycle: create, load.", function(){
var result = {};
@@ -133,7 +133,6 @@ test("Testing details lifecycle: create, setup, load.", function(){
}
}).execute();
- var setup_called = false;
var save_called = false;
var load_called = false;
@@ -142,9 +141,6 @@ test("Testing details lifecycle: create, setup, load.", function(){
var update_success_called = false;
var update_failure_called = false;
- function setup_status(){
- setup_called = true;
- }
function save_password(){
save_called = true;
@@ -158,11 +154,6 @@ test("Testing details lifecycle: create, setup, load.", function(){
function test_widget(spec){
var widget = IPA.widget(spec);
- widget.setup = function(container) {
- setup_called = true;
- widget.widget_setup(container);
- };
-
widget.load = function(record) {
load_called = true;
widget.widget_load(record);
@@ -198,7 +189,7 @@ test("Testing details lifecycle: create, setup, load.", function(){
name:'facsimiletelephonenumber'}]
}
]}).build();
- entity.init();
+
var entity_container = $('<div/>', {
name: 'user',
@@ -216,7 +207,6 @@ test("Testing details lifecycle: create, setup, load.", function(){
});
facet.create(facet_container);
- facet.setup(facet_container);
facet.load(result);
@@ -243,11 +233,6 @@ test("Testing details lifecycle: create, setup, load.", function(){
facet_container.attr('id','user');
- ok (
- setup_called,
- 'Setup status called'
- );
-
ok (load_called, 'load manager called');
var section = facet.sections.get('contact');
@@ -266,10 +251,10 @@ test("Testing details lifecycle: create, setup, load.", function(){
});
-test("Testing IPA.details_section_setup again()",function(){
+test("Testing IPA.details_section_create again()",function(){
var section = IPA.details_list_section({
- name: 'IDIDID', label: 'NAMENAMENAME'}).
+ name: 'IDIDID', label: 'NAMENAMENAME',entity: IPA.get_entity('user'),}).
text({name:'cn', label:'Entity Name'}).
text({name:'description', label:'Description'}).
text({name:'number', label:'Entity ID'});
@@ -281,13 +266,8 @@ test("Testing IPA.details_section_setup again()",function(){
var result = {};
section.create(container);
- section.setup(container);
section.load(result);
- //var h2= container.find('h2');
- //ok(h2);
- //ok(h2[0].innerHTML.indexOf(section.label) > 1,"find name in html");
-
var dl = $('dl', container);
ok(
dl.length,
diff --git a/install/ui/test/entity_tests.js b/install/ui/test/entity_tests.js
index 41e4d5e47..a3561613a 100644
--- a/install/ui/test/entity_tests.js
+++ b/install/ui/test/entity_tests.js
@@ -1,5 +1,6 @@
/* Authors:
* Endi Sukma Dewata <edewata@redhat.com>
+ * Adam Young <ayoung@redhat.com>
*
* Copyright (C) 2010 Red Hat
* see file 'COPYING' for use and warranty information
@@ -66,7 +67,6 @@ test('Testing IPA.entity_set_search_definition().', function() {
search_facet({
columns:['uid']}).
build();
- entity.init();
var entity_container = $('<div/>', {
name: 'user',
@@ -84,7 +84,6 @@ test('Testing IPA.entity_set_search_definition().', function() {
});
facet.create(facet_container);
- facet.setup(facet_container);
var column = facet.get_columns()[0];
ok(
diff --git a/install/ui/test/navigation_tests.js b/install/ui/test/navigation_tests.js
index 80d43536e..ece3b56d6 100644
--- a/install/ui/test/navigation_tests.js
+++ b/install/ui/test/navigation_tests.js
@@ -47,9 +47,9 @@ test("Testing IPA.navigation.create().", function() {
IPA.entity_factories.user = function() {
var that = IPA.entity({name: 'user',
metadata:IPA.metadata.objects.user});
- that.add_facet(IPA.search_facet({'entity_name':'user'}));
+ that.add_facet(IPA.search_facet({'entity':that}));
- that.setup = function(container){
+ that.display = function(container){
user_mock_called = true;
same(container.attr('name'), 'user', 'user container name');
same(container[0].nodeName, 'DIV', 'user container element');
@@ -59,7 +59,7 @@ test("Testing IPA.navigation.create().", function() {
IPA.entity_factories.group = function(){
var that = IPA.entity({name: 'group',
metadata:IPA.metadata.objects.group});
- that.setup = function(container){
+ that.display = function(container){
group_mock_called = true;
same(container.attr('name'), 'group','user container name');
same(container[0].nodeName, 'DIV', 'user container element');
diff --git a/install/ui/test/widget_tests.js b/install/ui/test/widget_tests.js
index c3ae8bea1..1d7cd0464 100644
--- a/install/ui/test/widget_tests.js
+++ b/install/ui/test/widget_tests.js
@@ -20,6 +20,9 @@
var widget_container;
+var widget;
+var factory
+var spec;
module('widget',{
@@ -35,40 +38,46 @@ module('widget',{
}
);
widget_container = $('<div id="widget"/>').appendTo(document.body);
+
+ widget = null;
+ factory = null;
+ spec = null;
+
+
},
teardown: function() {
widget_container.remove();
}}
);
-function base_widget_test(widget,entity_name, value){
+
+function base_widget_test(value){
+ spec.entity = {
+ name:'user'
+ };
+
+ widget = factory(spec);
+
+ var entity_name = 'user';
var field_name = widget.name;
ok (widget, "Created Widget");
- widget.init();
- ok(!widget.label,'widget with no entity has no label');
- ok(!widget.tooltip,'widget with entity and name has no tooltip');
//init reads param info for an entity. We'll use the user entity
- widget.entity_name = entity_name;
widget.name = field_name;
- widget.init();
ok(widget.label,'widget with entity and name has label');
ok(widget.tooltip,'widget with entity and name has tooltip');
- ok(!widget.container,'widget has no container before setup');
+ ok(!widget.container,'widget has no container before create');
widget.create(widget_container);
- widget.setup(widget_container);
-
- ok(widget.container,'widget has container after setup');
-
+ ok(widget.container,'widget has container after create');
}
-function widget_string_test(widget) {
- var value = 'test_title';
+function widget_string_test() {
+ var value = 'test_title';
var mock_record = {'title': value};
widget.load(mock_record);
@@ -143,9 +152,17 @@ function multivalued_text_tests(widget) {
}
test("IPA.table_widget" ,function(){
- var widget = IPA.table_widget({undo:true,name:'users'});
-
+ factory = IPA.table_widget;
+ spec = {
+ undo:true,
+ name:'users',
+ entity: {
+ name:'user'
+ }
+ };
+ widget = factory(spec);
widget.add_column(IPA.column({
+ entity: spec.entity,
name:'uid',
label:'User ID',
primary_key:'uid',
@@ -153,6 +170,7 @@ test("IPA.table_widget" ,function(){
entity_name:'user'
}));
widget.add_column(IPA.column({
+ entity: spec.entity,
name:'title',
lable:'Title',
primary_key:'uid',
@@ -160,13 +178,9 @@ test("IPA.table_widget" ,function(){
entity_name:'user'
}));
- widget.init();
-
- ok(!widget.container,'widget has no container before setup');
+ ok(!widget.container,'widget has no container before create');
widget.create(widget_container);
- widget.setup(widget_container);
-
- ok(widget.container,'widget has container after setup');
+ ok(widget.container,'widget has container after create');
var mock_results = {
@@ -184,49 +198,48 @@ test("IPA.table_widget" ,function(){
test("Testing base widget.", function() {
var update_called = false;
- var spec = {
+ spec = {
name:'title'
};
- var widget = IPA.widget(spec);
- widget.update = function() {
- update_called = true;
- };
-
- base_widget_test(widget,'user','test_value');
- widget_string_test(widget);
- ok (update_called, 'Update called');
-
+ factory = IPA.widget;
+ base_widget_test('test_value');
+ widget_string_test();
});
+
test("IPA.textarea_widget" ,function(){
- var widget = IPA.textarea_widget({undo:true,name:'title'});
- base_widget_test(widget,'user','test_value');
- widget_string_test(widget);
+ spec = {undo:true,name:'title'};
+ factory = IPA.textarea_widget;
+ base_widget_test('test_value');
+ widget_string_test();
text_tests(widget, $('textarea',widget_container));
});
test("Testing text widget.", function() {
- var widget = IPA.text_widget({undo:true,name:'title'});
- base_widget_test(widget,'user','test_value');
- widget_string_test(widget);
+ factory = IPA.text_widget;
+ spec = {undo:true,name:'title'};
+ base_widget_test('test_value');
+ widget_string_test();
text_tests(widget, $('input[type=text]',widget_container));
});
test("Testing multi-valued text widget.", function() {
- var widget = IPA.multivalued_text_widget({undo:true,name:'title'});
- base_widget_test(widget,'user','test_value');
- widget_string_test(widget);
+ factory = IPA.multivalued_text_widget;
+ spec = {undo:true,name:'title'};
+ base_widget_test('test_value');
+ widget_string_test();
multivalued_text_tests(widget);
});
test("Testing checkbox widget.", function() {
- var widget = IPA.checkbox_widget({name:'title'});
- base_widget_test(widget,'user','test_value');
+ factory = IPA.checkbox_widget;
+ spec = {name:'title'};
+ base_widget_test('test_value');
mock_record = {'title':'something'};
@@ -252,28 +265,30 @@ test("Testing checkbox widget.", function() {
test("IPA.checkboxes_widget" ,function(){
- var widget = IPA.checkboxes_widget({undo:true, name:'title' });
- base_widget_test(widget,'user','test_value');
+ factory = IPA.checkboxes_widget;
+ spec = {undo:true, name:'title' };
+ base_widget_test('test_value');
});
test("IPA.select_widget" ,function(){
- var widget = IPA.select_widget({undo:true,name:'title'});
- base_widget_test(widget,'user','test_value');
+ factory = IPA.select_widget;
+ spec = {undo:true,name:'title'};
+ base_widget_test('test_value');
});
test("IPA.entity_select_widget" ,function(){
-
- var widget = IPA.entity_select_widget({
+ factory = IPA.entity_select_widget;
+ spec = {
name: 'uid',
- other_entity: 'user',
- other_field: 'uid'
- });
+ other_entity:'user',
+ field_name:'uid',
+ other_field: 'uid' };
- base_widget_test(widget,'user','test_value');
- ok( $('option', widget.container).length > 1,"options populated from AJAX");
+ base_widget_test('test_value');
+ ok( $('option',widget.list ).length > 1,"options come from AJAX");
mock_record = {'uid':'kfrog'};
widget.load(mock_record);
same(widget.values[0],'kfrog','select set from values');
@@ -281,10 +296,11 @@ test("IPA.entity_select_widget" ,function(){
test("IPA.entity_link_widget" ,function(){
- var widget = IPA.entity_link_widget({
+ factory = IPA.entity_link_widget;
+ spec = {
name: 'gidnumber',
other_entity:'group'
- });
+ };
base_widget_test(widget,'user','test_value');
var mock_entity = {
@@ -315,15 +331,14 @@ test("IPA.entity_link_widget" ,function(){
});
-
-
test("IPA.radio_widget" ,function(){
var options = [{label:"Engineer",value:"engineer"},
{label:"Manager", value:"manager"},
{label:"Director",value:"director"},
{label:"Vice President",value:"VP"}];
- var widget = IPA.radio_widget({undo:true, name: 'title',options:options});
- base_widget_test(widget,'user','test_value');
+ factory = IPA.radio_widget;
+ spec = {undo:true, name: 'title',options:options};
+ base_widget_test('test_value');
var mock_record = {'title':["director"]};
widget.load(mock_record);
var values = widget.save();