Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

root/spinoffs/scriptaculous/test/inplaceeditor_unit.html

Revision 1951, 4.1 kB (checked in by madrobby, 5 years ago)

script.aculo.us: Added preliminary version of Ajax.InPlaceEditor to controls.js; added experimental Firefox only functional testing for it (inplaceeditor_result.html) [Jon Tirsen]

Line 
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4 <head>
5   <title>script.aculo.us Unit test file</title>
6   <meta http-equiv="content-type" content="text/html; charset=utf-8" />
7   <script src="../lib/prototype.js" type="text/javascript"></script>
8   <script src="unittest.js" type="text/javascript"></script>
9   <script src="../src/effects.js" type="text/javascript"></script>
10   <script src="../src/dragdrop.js" type="text/javascript"></script>
11   <script src="../src/controls.js" type="text/javascript"></script>
12 </head>
13 <body>
14 <h1>script.aculo.us Unit test file</h1>
15 <p>
16   Tests for the Ajax.InPlaceEditor.
17 </p>
18
19 <!-- Log output -->
20 <pre id="testlog"> </pre>
21
22 <h1 id="tobeedited">To be edited</h1>
23
24 <!-- Tests follow -->
25 <script type="text/javascript" language="javascript" charset="utf-8">
26 // <![CDATA[
27
28   // underscores or not?
29   Test.Unit.Assertions.prototype.assertEqual = Test.Unit.Assertions.prototype.assert_equal;
30  
31   Test.Unit.Assertions.prototype.assertHidden = function(element) {
32     this.assertEqual("none", element.style.display);
33   };
34
35   Test.Unit.Assertions.prototype.assertNotNull = function(object) {
36     this.assert(object != null);
37   };
38  
39   Test.Unit.Assertions.prototype.assertNotEqual = function(notExpected, actual) {
40     this.assert(!(notExpected == actual));
41   };
42
43   Test.Unit.Assertions.prototype.assertNull = Test.Unit.Assertions.prototype.assert_null;
44
45   Test.Unit.Assertions.prototype.assertVisible = function(element) {
46     if(element == document) return;
47     this.assertNotNull(element);
48     if (element.style) {
49       // it's not an element, may be a text node for example, just check parent
50       this.assertNotEqual("none", element.style.display);
51     }
52     this.assertVisible(element.parentNode);
53   };
54  
55   Event.simulateEvent = function(element, eventName) {
56     var oEvent = document.createEvent("MouseEvents");
57     oEvent.initMouseEvent(eventName,true,true,window,1,1,1,1,1,false,false,false,false,0,$(element));
58     $(element).dispatchEvent(oEvent);
59   };
60
61   new Test.Unit.Runner({
62
63     test_InPlaceEditor: function() { with(this) {
64       inPlaceEditor = new Ajax.InPlaceEditor($('tobeedited'), '_inplaceeditor_result.html');
65
66       Event.simulateEvent('tobeedited','mouseover');
67       assertEqual("rgb(238, 238, 238)", Element.getStyle('tobeedited','background-color'));
68
69       Event.simulateEvent('tobeedited','mouseout');
70       assertEqual("transparent", Element.getStyle('tobeedited','background-color'));
71
72       Event.simulateEvent('tobeedited','mouseover');
73       Event.simulateEvent('tobeedited','click');
74       assertHidden($('tobeedited'));
75       assertNotNull(document.forms[0]);
76       assertEqual("cancel", document.forms[0].lastChild.innerHTML);
77       assertVisible(document.forms[0]);
78
79       Event.simulateEvent(document.forms[0].lastChild,'click');
80       assertNull(document.forms[0]);
81       assertVisible($('tobeedited'));
82       assertEqual("transparent", Element.getStyle('tobeedited','background-color'));
83
84       Event.simulateEvent('tobeedited','mouseover');
85       Event.simulateEvent('tobeedited','click');
86
87       assertEqual("INPUT", document.forms[0].firstChild.tagName);
88       assertEqual("To be edited", document.forms[0].firstChild.value);
89       assertEqual("INPUT", document.forms[0].childNodes[1].tagName);
90       assertEqual("submit", document.forms[0].childNodes[1].type);
91       assertEqual("To be edited", document.forms[0].firstChild.value);
92
93       Event.simulateEvent(document.forms[0].childNodes[1],'click');
94       assertVisible($('tobeedited'));
95       assertEqual("Saving...", $('tobeedited').innerHTML);
96       assertEqual("transparent", Element.getStyle('tobeedited','background-color'));
97
98       // TODO doesn't work yet
99       setTimeout(function() {
100         assertEqual("Server received: To be edited", $('tobeedited').innerHTML);
101         assertNull(document.forms[0]);
102         assertVisible($('tobeedited'));
103         assertEqual("transparent", Element.getStyle('tobeedited','background-color'));
104       }, 1000);
105     }}
106   }, "testlog");
107 // ]]>
108 </script>
109 </body>
110 </html>
Note: See TracBrowser for help on using the browser.