initialized kettu on gitorious
[kettu:kettu.git] / spec / jspec / jspec.jquery.js
1
2 // JSpec - jQuery - Copyright TJ Holowaychuk <tj@vision-media.ca> (MIT Licensed)
3
4 JSpec
5 .requires('jQuery', 'when using jspec.jquery.js')
6 .include({
7   name: 'jQuery',
8   
9   // --- Initialize
10   
11   init : function() {
12     jQuery.ajaxSetup({ async: false })
13   },
14   
15   // --- Utilities
16   
17   utilities : {
18     element:  jQuery,
19     elements: jQuery,
20     sandbox : function() {
21       return jQuery('<div class="sandbox"></div>')
22     }
23   },
24   
25   // --- Matchers
26   
27   matchers : {
28     have_tag      : "jQuery(expected, actual).length == 1",
29     have_one      : "alias have_tag",
30     have_tags     : "jQuery(expected, actual).length > 1",
31     have_many     : "alias have_tags",
32     have_child    : "jQuery(actual).children(expected).length == 1",
33     have_children : "jQuery(actual).children(expected).length > 1",
34     have_text     : "jQuery(actual).text() == expected",
35     have_value    : "jQuery(actual).val() == expected",
36     be_enabled    : "!jQuery(actual).attr('disabled')",
37     have_class    : "jQuery(actual).hasClass(expected)",
38     
39     be_visible : function(actual) {
40       return jQuery(actual).css('display') != 'none' &&
41              jQuery(actual).css('visibility') != 'hidden' &&
42              jQuery(actual).attr('type') != 'hidden'
43     },
44     
45     be_hidden : function(actual) {
46       return !JSpec.does(actual, 'be_visible')
47     },
48
49     have_classes : function(actual) {
50       return !JSpec.any(JSpec.argumentsToArray(arguments, 1), function(arg){
51         return !JSpec.does(actual, 'have_class', arg)
52       })
53     },
54
55     have_attr : function(actual, attr, value) {
56       return value ? jQuery(actual).attr(attr) == value:
57                      jQuery(actual).attr(attr)
58     },
59     
60     'be disabled selected checked' : function(attr) {
61       return 'jQuery(actual).attr("' + attr + '")'
62     },
63     
64     'have type id title alt href src sel rev name target' : function(attr) {
65       return function(actual, value) {
66         return JSpec.does(actual, 'have_attr', attr, value)
67       }
68     }
69   }
70 })
71