mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Test suite for association.
New test cases have been added to test SerialAssociator and BulkAssociator using mockup objects. Also fixed a bug in BulkAssociator. Moved switch_view() out of ipa_entity_generate_views() in entity.js to allow unit testing using mockup objects. Updated the test case to validate click event on facets.
This commit is contained in:
committed by
Adam Young
parent
370c1c3e0e
commit
d966056bb0
@@ -65,6 +65,7 @@ in a single rpc
|
||||
*/
|
||||
function BulkAssociator(form, manyObjPkeys, on_success)
|
||||
{
|
||||
var associator = this;
|
||||
this.form = form;
|
||||
this.manyObjPkeys = manyObjPkeys;
|
||||
this.on_success = on_success;
|
||||
@@ -88,7 +89,7 @@ function BulkAssociator(form, manyObjPkeys, on_success)
|
||||
if (response.error){
|
||||
alert("error adding member: "+response.error.message);
|
||||
}else{
|
||||
form.on_success();
|
||||
associator.on_success();
|
||||
}
|
||||
},
|
||||
function(response){
|
||||
|
@@ -59,6 +59,19 @@ function ipa_entity_setup(jobj)
|
||||
return (false);
|
||||
};
|
||||
|
||||
function switch_view() {
|
||||
var enroll_obj_name = $(this).attr('title');
|
||||
var state = {};
|
||||
if (enroll_obj_name != 'search' && enroll_obj_name != 'details') {
|
||||
state[obj_name + '-facet'] = 'associate';
|
||||
state[obj_name + '-enroll'] = enroll_obj_name;
|
||||
} else {
|
||||
state[obj_name + '-facet'] = enroll_obj_name;
|
||||
state[obj_name + '-enroll'] = '';
|
||||
}
|
||||
$.bbq.pushState(state);
|
||||
};
|
||||
|
||||
function setup_search_facet() {
|
||||
var filter = $.bbq.getState(obj_name + '-filter', true);
|
||||
search_create(obj_name, ipa_entity_search_list[obj_name], jobj);
|
||||
@@ -71,7 +84,7 @@ function ipa_entity_setup(jobj)
|
||||
|
||||
function setup_details_facet() {
|
||||
var pkey = $.bbq.getState(obj_name + '-pkey', true);
|
||||
ipa_entity_generate_views(obj_name, jobj);
|
||||
ipa_entity_generate_views(obj_name, jobj, switch_view);
|
||||
ipa_details_create(obj_name, ipa_entity_details_list[obj_name], jobj);
|
||||
jobj.find('.details-reset').click(reset_on_click);
|
||||
jobj.find('.details-update').click(update_on_click);
|
||||
@@ -90,7 +103,7 @@ function ipa_entity_setup(jobj)
|
||||
}
|
||||
];
|
||||
var frm = new AssociationList(obj_name, pkey, enroll_obj_name, columns, jobj);
|
||||
ipa_entity_generate_views(obj_name, jobj);
|
||||
ipa_entity_generate_views(obj_name, jobj, switch_view);
|
||||
frm.setup();
|
||||
};
|
||||
|
||||
@@ -106,21 +119,8 @@ function ipa_entity_setup(jobj)
|
||||
}
|
||||
}
|
||||
|
||||
function ipa_entity_generate_views(obj_name, container)
|
||||
function ipa_entity_generate_views(obj_name, container, switch_view)
|
||||
{
|
||||
function switch_view() {
|
||||
var enroll_obj_name = $(this).attr('title');
|
||||
var state = {};
|
||||
if (enroll_obj_name != 'search' && enroll_obj_name != 'details') {
|
||||
state[obj_name + '-facet'] = 'associate';
|
||||
state[obj_name + '-enroll'] = enroll_obj_name;
|
||||
} else {
|
||||
state[obj_name + '-facet'] = enroll_obj_name;
|
||||
state[obj_name + '-enroll'] = '';
|
||||
}
|
||||
$.bbq.pushState(state);
|
||||
};
|
||||
|
||||
var ul = $('<ul></ul>', {'class': 'entity-views'});
|
||||
|
||||
//TODO replace the plus image with the correct image for each facet
|
||||
|
@@ -10,8 +10,10 @@
|
||||
<script type="text/javascript" src="../search.js"></script>
|
||||
<script type="text/javascript" src="../add.js"></script>
|
||||
<script type="text/javascript" src="../entity.js"></script>
|
||||
<script type="text/javascript" src="../associate.js"></script>
|
||||
<script type="text/javascript" src="ipa_tests.js"></script>
|
||||
<script type="text/javascript" src="entity_tests.js"></script>
|
||||
<script type="text/javascript" src="association_tests.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="qunit-header">Complete Test Suite</h1>
|
||||
|
23
install/static/test/association_tests.html
Normal file
23
install/static/test/association_tests.html
Normal file
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Association Test Suite</title>
|
||||
<link rel="stylesheet" href="qunit.css" type="text/css" media="screen">
|
||||
<script type="text/javascript" src="qunit.js"></script>
|
||||
<script type="text/javascript" src="../jquery.js"></script>
|
||||
<script type="text/javascript" src="../ipa.js"></script>
|
||||
<script type="text/javascript" src="../details.js"></script>
|
||||
<script type="text/javascript" src="../search.js"></script>
|
||||
<script type="text/javascript" src="../add.js"></script>
|
||||
<script type="text/javascript" src="../associate.js"></script>
|
||||
<script type="text/javascript" src="association_tests.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="qunit-header">Association Test Suite</h1>
|
||||
<h2 id="qunit-banner"></h2>
|
||||
<div id="qunit-testrunner-toolbar"></div>
|
||||
<h2 id="qunit-userAgent"></h2>
|
||||
<ol id="qunit-tests"></ol>
|
||||
<div id="qunit-fixture">test markup</div>
|
||||
</body>
|
||||
</html>
|
124
install/static/test/association_tests.js
Normal file
124
install/static/test/association_tests.js
Normal file
@@ -0,0 +1,124 @@
|
||||
/* Authors:
|
||||
* Endi Sukma Dewata <edewata@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 SerialAssociator().", function() {
|
||||
|
||||
expect(10);
|
||||
|
||||
var orig_ipa_cmd = ipa_cmd;
|
||||
|
||||
var counter = 0;
|
||||
|
||||
var form = {
|
||||
method: "add_member",
|
||||
pkey: "test",
|
||||
oneObj: "user",
|
||||
manyObj: "group"
|
||||
};
|
||||
|
||||
var manyObjPkeys = ['user1', 'user2', 'user3'];
|
||||
|
||||
ipa_cmd = function(name, args, options, win_callback, fail_callback, objname) {
|
||||
counter++;
|
||||
|
||||
equals(
|
||||
name, form.method,
|
||||
"Checking ipa_cmd() parameter: method"
|
||||
);
|
||||
|
||||
equals(
|
||||
objname, form.manyObj,
|
||||
"Checking ipa_cmd() parameter: object name"
|
||||
);
|
||||
|
||||
equals(
|
||||
args[0], "user"+counter,
|
||||
"Checking ipa_cmd() parameter: primary key"
|
||||
);
|
||||
|
||||
var response = {};
|
||||
win_callback(response);
|
||||
return 0;
|
||||
};
|
||||
|
||||
var on_success = function() {
|
||||
ok(true, "on_success() is invoked.");
|
||||
};
|
||||
|
||||
var associator = new SerialAssociator(form, manyObjPkeys, on_success);
|
||||
associator.associateNext();
|
||||
|
||||
ipa_cmd = orig_ipa_cmd;
|
||||
});
|
||||
|
||||
test("Testing BulkAssociator().", function() {
|
||||
|
||||
expect(5);
|
||||
|
||||
var orig_ipa_cmd = ipa_cmd;
|
||||
|
||||
var counter = 0;
|
||||
|
||||
var form = {
|
||||
method: "add_member",
|
||||
pkey: "test",
|
||||
oneObj: "user",
|
||||
manyObj: "group"
|
||||
};
|
||||
|
||||
var manyObjPkeys = ['user1', 'user2', 'user3'];
|
||||
|
||||
ipa_cmd = function(name, args, options, win_callback, fail_callback, objname) {
|
||||
counter++;
|
||||
|
||||
equals(
|
||||
name, form.method,
|
||||
"Checking ipa_cmd() parameter: method"
|
||||
);
|
||||
|
||||
equals(
|
||||
objname, form.oneObj,
|
||||
"Checking ipa_cmd() parameter: object name"
|
||||
);
|
||||
|
||||
equals(
|
||||
args[0], form.pkey,
|
||||
"Checking ipa_cmd() parameter: primary key"
|
||||
);
|
||||
|
||||
equals(
|
||||
options[form.manyObj], "user1,user2,user3",
|
||||
"Checking ipa_cmd() parameter: options[\""+form.manyObj+"\"]"
|
||||
);
|
||||
|
||||
var response = {};
|
||||
win_callback(response);
|
||||
return 0;
|
||||
};
|
||||
|
||||
var on_success = function() {
|
||||
ok(true, "on_success() is invoked.");
|
||||
};
|
||||
|
||||
var associator = new BulkAssociator(form, manyObjPkeys, on_success);
|
||||
associator.associateNext();
|
||||
|
||||
ipa_cmd = orig_ipa_cmd;
|
||||
});
|
@@ -78,7 +78,13 @@ test("Testing ipa_entity_generate_views().", function() {
|
||||
);
|
||||
|
||||
var container = $("<div/>");
|
||||
ipa_entity_generate_views("user", container);
|
||||
|
||||
var counter = 0;
|
||||
var callback = function() {
|
||||
counter++;
|
||||
};
|
||||
|
||||
ipa_entity_generate_views("user", container, callback);
|
||||
|
||||
var list = container.children();
|
||||
var facets = list.children();
|
||||
@@ -92,16 +98,20 @@ test("Testing ipa_entity_generate_views().", function() {
|
||||
|
||||
equals(
|
||||
search.attr("title"), "search",
|
||||
"Checking the first facet"
|
||||
"Checking the search facet"
|
||||
)
|
||||
|
||||
search.click();
|
||||
|
||||
var details = search.next();
|
||||
|
||||
equals(
|
||||
details.attr("title"), "details",
|
||||
"Checking the second facet"
|
||||
"Checking the details facet"
|
||||
)
|
||||
|
||||
details.click();
|
||||
|
||||
var facet = details.next();
|
||||
var attribute_members = ipa_objs["user"].attribute_members;
|
||||
for (attribute_member in attribute_members) {
|
||||
@@ -111,10 +121,17 @@ test("Testing ipa_entity_generate_views().", function() {
|
||||
|
||||
equals(
|
||||
facet.attr("title"), object,
|
||||
"Checking the next facet"
|
||||
"Checking the "+object+" facet"
|
||||
);
|
||||
|
||||
facet.click();
|
||||
|
||||
facet = facet.next();
|
||||
}
|
||||
}
|
||||
|
||||
equals(
|
||||
counter, 6,
|
||||
"Checking callback invocations"
|
||||
);
|
||||
});
|
||||
|
@@ -26,6 +26,7 @@
|
||||
<ul>
|
||||
<li><a href="ipa_tests.html">Core Test Suite</a>
|
||||
<li><a href="entity_tests.html">Entity Test Suite</a>
|
||||
<li><a href="association_tests.html">Association Test Suite</a>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
Reference in New Issue
Block a user