summaryrefslogtreecommitdiffstats
path: root/install/static/test/entity_tests.js
diff options
context:
space:
mode:
authorEndi Sukma Dewata <edewata@redhat.com>2010-09-24 19:50:29 -0400
committerAdam Young <ayoung@redhat.com>2010-09-24 19:50:29 -0400
commit346615d4a0029fb3f59344a98963b7fea8356b8c (patch)
treef038a31261d2560d703daee0f2f190049ebfac23 /install/static/test/entity_tests.js
parent59d46abcd5fe9b5e83d4ae962a3afe8bf6bd8e87 (diff)
downloadfreeipa.git-346615d4a0029fb3f59344a98963b7fea8356b8c.tar.gz
freeipa.git-346615d4a0029fb3f59344a98963b7fea8356b8c.tar.xz
freeipa.git-346615d4a0029fb3f59344a98963b7fea8356b8c.zip
Test framework for Web UI.
Test framework for Web UI has been created using qUnit. The test files are located in install/static/test. The main page is index.html which contains links to all test suites (xxx_tests.html). The test cases are stored in xxx_tests.js. All test suites can be executed at once using all_tests.html. The test data is stored in data folder. This patch includes test suites for ipa.js and entity.js. Some variables and functions in ipa.js have been modified to accomodate testing (e.g. JSON URL, error handler, synchronous operation). The sampledata has been moved to test/data. The develop.js and webui.js also have been modified accordingly.
Diffstat (limited to 'install/static/test/entity_tests.js')
-rw-r--r--install/static/test/entity_tests.js120
1 files changed, 120 insertions, 0 deletions
diff --git a/install/static/test/entity_tests.js b/install/static/test/entity_tests.js
new file mode 100644
index 00000000..297928ba
--- /dev/null
+++ b/install/static/test/entity_tests.js
@@ -0,0 +1,120 @@
+/* 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 ipa_entity_set_search_definition().", function() {
+
+ var uid_callback = function() {
+ return true;
+ };
+
+ ipa_entity_set_search_definition("user", [
+ ["uid", "Login", uid_callback],
+ ]);
+
+ var list = ipa_entity_search_list["user"];
+ ok(
+ list,
+ "ipa_entity_search_list[\"user\"] is not null"
+ );
+
+ var attr = list[0];
+ ok(
+ attr,
+ "ipa_entity_search_list[\"user\"][0] is not null"
+ );
+
+ equals(
+ attr[0], "uid",
+ "ipa_entity_search_list[\"user\"][0][0]"
+ );
+
+ equals(
+ attr[1], "Login",
+ "ipa_entity_search_list[\"user\"][0][1]"
+ );
+
+ var callback = attr[2];
+ ok(
+ callback,
+ "ipa_entity_search_list[\"user\"][0][2] not null"
+ );
+
+ ok(
+ callback(),
+ "ipa_entity_search_list[\"user\"][0][2]() works"
+ );
+});
+
+test("Testing ipa_entity_generate_views().", function() {
+
+ ipa_ajax_options["async"] = false;
+
+ ipa_init(
+ "data",
+ true,
+ function(data, status, xhr) {
+ ok(true, "ipa_init() succeeded.");
+ },
+ function(xhr, options, thrownError) {
+ ok(false, "ipa_init() failed: "+thrownError);
+ }
+ );
+
+ var container = $("<div/>");
+ ipa_entity_generate_views("user", container);
+
+ var list = container.children();
+ var facets = list.children();
+
+ equals(
+ facets.length, 6,
+ "Checking number of facets"
+ )
+
+ var search = facets.first();
+
+ equals(
+ search.attr("title"), "search",
+ "Checking the first facet"
+ )
+
+ var details = search.next();
+
+ equals(
+ details.attr("title"), "details",
+ "Checking the second facet"
+ )
+
+ var facet = details.next();
+ var attribute_members = ipa_objs["user"].attribute_members;
+ for (attribute_member in attribute_members) {
+ var objects = attribute_members[attribute_member];
+ for (var i = 0; i < objects.length; i++) {
+ var object = objects[i];
+
+ equals(
+ facet.attr("title"), object,
+ "Checking the next facet"
+ );
+
+ facet = facet.next();
+ }
+ }
+});