mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-24 16:10:02 -06:00
widget unit tests
unit test for basic functionality, text, and checkbox widgets
This commit is contained in:
parent
6db3105315
commit
c281e786c8
@ -24,7 +24,7 @@
|
||||
<script type="text/javascript" src="aci_tests.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="qunit-header">Certificate Test Suite</h1>
|
||||
<h1 id="qunit-header">ACI Test Suite</h1>
|
||||
<h2 id="qunit-banner"></h2>
|
||||
<div id="qunit-testrunner-toolbar"></div>
|
||||
<h2 id="qunit-userAgent"></h2>
|
||||
|
@ -25,6 +25,7 @@
|
||||
<script type="text/javascript" src="navigation_tests.js"></script>
|
||||
<script type="text/javascript" src="certificate_tests.js"></script>
|
||||
<script type="text/javascript" src="aci_tests.js"></script>
|
||||
<script type="text/javascript" src="widget_tests.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="qunit-header">Complete Test Suite</h1>
|
||||
|
@ -31,6 +31,7 @@
|
||||
<li><a href="navigation_tests.html">Navigation Test Suite</a>
|
||||
<li><a href="certificate_tests.html">Certificate Test Suite</a>
|
||||
<li><a href="aci_tests.html">Access Control Interface Test Suite</a>
|
||||
<li><a href="widget_tests.html">Widget Test Suite</a>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
26
install/ui/test/widget_tests.html
Executable file
26
install/ui/test/widget_tests.html
Executable file
@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Widget 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="../jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="../jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="../ipa.js"></script>
|
||||
<script type="text/javascript" src="../widget.js"></script>
|
||||
|
||||
<script type="text/javascript" src="widget_tests.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="qunit-header">Widget 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"></div>
|
||||
</body>
|
||||
</html>
|
166
install/ui/test/widget_tests.js
Normal file
166
install/ui/test/widget_tests.js
Normal file
@ -0,0 +1,166 @@
|
||||
/* 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
|
||||
*/
|
||||
|
||||
|
||||
var widget_container;
|
||||
|
||||
|
||||
module('widget',{
|
||||
setup: function() {
|
||||
IPA.ajax_options.async = false;
|
||||
IPA.init(
|
||||
"data",
|
||||
true,
|
||||
function(data, text_status, xhr) {
|
||||
ok(true, "ipa_init() succeeded.");
|
||||
},
|
||||
function(xhr, text_status, error_thrown) {
|
||||
ok(false, "ipa_init() failed: "+error_thrown);
|
||||
}
|
||||
);
|
||||
widget_container = $('<div id="widget"/>').appendTo(document.body);
|
||||
},
|
||||
teardown: function() {
|
||||
widget_container.remove();
|
||||
}}
|
||||
);
|
||||
|
||||
|
||||
|
||||
function base_widget_test(widget,entity_name, field_name,value){
|
||||
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');
|
||||
widget.create(widget_container);
|
||||
widget.setup(widget_container);
|
||||
|
||||
ok(widget.container,'widget has container after setup');
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function widget_string_test(widget, value){
|
||||
var value = 'test_title';
|
||||
var mock_record = {'title': value};
|
||||
|
||||
widget.load(mock_record);
|
||||
|
||||
ok(widget.save() instanceof Array,'save returns array');
|
||||
|
||||
|
||||
mock_record = {'title':[value]};
|
||||
widget.load(mock_record);
|
||||
|
||||
ok(widget.save() instanceof Array,'save returns array');
|
||||
|
||||
}
|
||||
|
||||
test("Testing base widget.", function() {
|
||||
var update_called = false;
|
||||
var spec = {
|
||||
update:function(){
|
||||
update_called = true;
|
||||
}
|
||||
};
|
||||
|
||||
var widget = IPA.widget(spec);
|
||||
base_widget_test(widget,'user','title','test_value');
|
||||
widget_string_test(widget);
|
||||
ok (update_called, 'Update called');
|
||||
|
||||
});
|
||||
|
||||
|
||||
test("Testing text widget.", function() {
|
||||
var widget = IPA.text_widget({undo:true});
|
||||
base_widget_test(widget,'user','title','test_value');
|
||||
widget_string_test(widget);
|
||||
|
||||
|
||||
var input = $('input[type=text]',widget_container);
|
||||
input.val('changed');
|
||||
input.keyup();
|
||||
same(widget.save(),['changed'], "Setting Value");
|
||||
same(widget.is_dirty(),true, "Click sets is_dirty");
|
||||
|
||||
var undo = widget.get_undo();
|
||||
undo.click();
|
||||
same(widget.is_dirty(),false, "Undo Clears is_dirty");
|
||||
|
||||
|
||||
var old_pattern = widget.param_info.pattern;
|
||||
|
||||
widget.param_info.pattern ='abc';
|
||||
input.val('not right');
|
||||
input.keyup();
|
||||
same(widget.valid,false, 'Field is not valid');
|
||||
var error_field = widget.get_error_link();
|
||||
|
||||
same(error_field.css('display'),'block','error field is visible');
|
||||
|
||||
|
||||
input.val('abc');
|
||||
input.keyup();
|
||||
same(widget.valid,true, 'Field is valid');
|
||||
same(error_field.css('display'),'none','error field not visible');
|
||||
|
||||
widget.param_info.pattern = old_pattern;
|
||||
|
||||
});
|
||||
|
||||
test("Testing checkbox widget.", function() {
|
||||
var widget = IPA.checkbox_widget();
|
||||
base_widget_test(widget,'user','title','test_value');
|
||||
|
||||
mock_record = {'title':'something'};
|
||||
|
||||
widget.load(mock_record);
|
||||
same(widget.save(),[true], "Checkbox is set");
|
||||
|
||||
mock_record = {'title':null};
|
||||
|
||||
widget.load(mock_record);
|
||||
same(widget.save(), [false], "Checkbox is not set");
|
||||
|
||||
var input = $('input[type=checkbox]',widget_container);
|
||||
|
||||
same(input.length,1,'One control in the container');
|
||||
|
||||
input.click();
|
||||
|
||||
same(widget.save(),[true], "Click sets checkbox");
|
||||
same(widget.is_dirty(),true, "Click sets is_dirty");
|
||||
|
||||
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user