root/trunk/sumatra/examples/3_prototype/ExpandElementWithPrototypeTest.groovy

Revision 2, 2.3 KB (checked in by scottvlaminck, 3 years ago)

rename rhinounit package to sumatra

Line 
1class ExpandElementWithPrototypeTest extends sumatra.groovy.SumatraTestCase
2{
3        void setUp()
4        {
5                // load simple default implementation of browser-provided objects
6                initFramework('prototype')
7               
8                // load the javascript file to test
9                load('examples/3_prototype/expandElementWithPrototype.js')
10        }
11       
12        void testStubElementWithPrototype()
13        {
14                def stubElement = createStubElement('div', 'settings', [className:'closed', innerHTML:'Hello World'])
15
16                // use prototype's $ method from groovy
17                def element = '$'('settings')
18               
19                assert 'closed' == element.className
20                assert 'Hello World' == element.innerHTML
21                assert 'settings' == element.id
22                assert 'DIV' == element.tagName
23
24                def returnedElement = f('expandSettings')()
25
26                def elementAgain = '$'('settings')
27               
28                // retrieved element modified
29                assert 'expanded' == elementAgain.className
30
31                // the other attributes have not changed
32                assert 'Hello World' == elementAgain.innerHTML
33                assert 'settings' == elementAgain.id
34                assert 'DIV' == elementAgain.tagName
35
36                // returned element modified
37                assert 'expanded' == returnedElement.className
38                assert 'Hello World' == returnedElement.innerHTML
39                assert 'settings' == returnedElement.id
40                assert 'DIV' == returnedElement.tagName
41               
42                // original element modified as well, since they all refer to the same javascript object instance
43                assert 'expanded' == element.className
44                assert 'Hello World' == element.innerHTML
45                assert 'settings' == element.id
46                assert 'DIV' == element.tagName
47        }
48       
49        void testMockElementUsingExecJs()
50        {
51                def stubElement = createStubElement('div', 'settings', [className:'closed', innerHTML:'Hello World'])
52
53                assert 'closed' == stubElement.className
54                assert 'Hello World' == stubElement.innerHTML
55                assert 'settings' == stubElement.id
56                assert 'DIV' == stubElement.tagName
57               
58
59                // call javascript function using execJs
60                def returnedElement = execJs('expandSettings()')
61/*              def returnedElement = js.exec('expandSettings()')*/
62
63
64                // className was changed
65                assert 'expanded' == returnedElement.className
66               
67                // the other attributes have not changed
68                assert 'Hello World' == returnedElement.innerHTML
69                assert 'settings' == returnedElement.id
70                assert 'DIV' == returnedElement.tagName
71               
72                // our stubElement also changed, since they refer to the same object
73                assert 'expanded' == stubElement.className
74        }
75}
Note: See TracBrowser for help on using the browser.