[prev in list] [next in list] [prev in thread] [next in thread] 

List:       selenium-commits
Subject:    [Selenium-commits] [JIRA] Created: (SEL-153) function defined in
From:       "Warren Pollans (JIRA)" <jira () public ! thoughtworks ! org>
Date:       2005-09-25 18:13:37
Message-ID: 13343696.1127672017305.JavaMail.jira () atlassian ! public ! thoughtworks ! org
[Download RAW message or body]

function defined in user-extensions.js not registered/known in SeleneseRunner
-----------------------------------------------------------------------------

         Key: SEL-153
         URL: http://jira.public.thoughtworks.org/browse/SEL-153
     Project: Selenium
        Type: Bug
  Components: SeleneseRunner  
 Environment: OSX.3.9 and fedora-3 - with installed python and ruby
firefox and mozilla - current
selenium from svn - July 13 - 14
 Reporter: Warren Pollans


I've posted this to the users list, but got no response - I'm using selenium from svn \
- about two weeks old on both boxes.  Here's the mail I sent to the list.  In short, \
added function works in TestRunner, not in SeleneseRunner - driven mode tests work \
without additional function; fail with it - for both ruby and python.

This is a followup on my problem with getting SeleneseRunner to recognize a function \
defined in user-extensions.  I have a simpler test now - which, hopefully, someone \
else can use to duplicate the problem.

1.  <before> I use the TestSelect test from the dist and run it in TestRunner and \
through SeleneseRunner using both python and ruby - all three tests succeed

2. <after> Using user-extensions.js, shown below, I modified the tests to use the new \
'verifySelectlength' command.  The TestRunner test succeeds and both the python and \
ruby tests fail - the TestRunner log and the SeleneseRunner error are show below.  \
The scripts are also listed below - the only difference between the scripts used in \
the <before> case and those used in the <after> case is the one line calling \
'verifySelectLength'.

Unless I've done something wrong, which is possible :-), there appears to be a \
problem with the way SeleneseRunner handles user-extensions.js.  I can't really \
pursue this much farther because I'm not sure where to start.  If someone could point \
me in the right direction, I'd be happy to look at this some more.

By the way, these results are from my ibook (10.3.9) - they are consistent with my \
previous whining, which referred to work done on my linux box (fedora-3)

++++++++++++++++++++++++++++++
[selenium_driver]$ cat user-extensions.js
alert('start');
Selenium.prototype.assertSelectLength = function(target, num) {
    var element = this.page().findElement(target);

    Assert.equals(parseInt(num), element.options.length);
};
alert('finish');

+++++++++++++++++++++++++++++
TestRunner log

    * Executing: |open | ./tests/html/test_select.html | |
    * Executing: |verifySelectLength | theSelect | 7 |
    * Executing: |assertSelected | theSelect | Second Option |
    * Executing: |select | theSelect | index=4 |
    * Executing: |verifySelected | theSelect | Fifth Option |
    * Executing: |select | theSelect | Third Option |
    * Executing: |verifySelected | theSelect | Third Option |
    * Executing: |select | theSelect | label=Fourth Option |
    * Executing: |verifySelected | theSelect | Fourth Option |
    * Executing: |select | theSelect | value=option6 |
    * Executing: |verifySelected | theSelect | Sixth Option |
    * Executing: |select | theSelect | value= |
    * Executing: |verifySelected | theSelect | Empty Value Option |
    * Executing: |select | theSelect | id=o4 |
    * Executing: |verifySelected | theSelect | Fourth Option |

+++++++++++++++++++++++++++++++++++
[examples]$ cat testselect.py
import xmlrpclib

# Make an object to represent the XML-RPC server.
server_url = "http://localhost:8080/selenium-driver/RPC2"
app = xmlrpclib.ServerProxy(server_url)

# Bump timeout a little higher than the default 5 seconds
app.setTimeout(35)

import os
os.system('sh ./run_firefox.bat')

print app.open('http://localhost:8080/selenium-driver/tests/html/test_select.html')

print app.verifySelectLength('theSelect', '7')

print app.verifySelected('theSelect', 'Second Option')
print app.select('theSelect','index=4')
print app.verifySelected('theSelect','Fifth Option')
print app.select('theSelect','Third Option')
print app.verifySelected('theSelect','Third Option')
print app.select('theSelect','label=Fourth Option')
print app.verifySelected('theSelect','Fourth Option')
print app.select('theSelect','value=option6')
print app.verifySelected('theSelect','Sixth Option')
print app.select('theSelect','value=')
print app.verifySelected('theSelect','Empty Value Option')
print app.select('theSelect','id=o4')
print app.verifySelected('theSelect','Fourth Option')

print app.testComplete()

+++++++++++++++++++++++++++++++++++
[examples]$ cat testselect.rb
require "xmlrpc/client"

# Make an object to represent the XML-RPC server.
server = XMLRPC::Client.new( "localhost", "/selenium-driver/RPC2", 8080)

# Bump timeout a little higher than the default 5 seconds
server.call('setTimeout',35)

system 'sh ./run_firefox.bat'

puts server.call('open', \
'http://localhost:8080/selenium-driver/tests/html/test_select.html')

puts server.call('verifySelectLength','theSelect','7')

puts server.call('verifySelected','theSelect','Second Option')
puts server.call('select','theSelect','index=4')
puts server.call('verifySelected','theSelect','Fifth Option')
puts server.call('select','theSelect','Third Option')
puts server.call('verifySelected','theSelect','Third Option')
puts server.call('select','theSelect','label=Fourth Option')
puts server.call('verifySelected','theSelect','Fourth Option')
puts server.call('select','theSelect','value=option6')
puts server.call('verifySelected','theSelect','Sixth Option')
puts server.call('select','theSelect','value=')
puts server.call('verifySelected','theSelect','Empty Value Option')
puts server.call('select','theSelect','id=o4')
puts server.call('verifySelected','theSelect','Fourth Option')


puts server.call('testComplete')

+++++++++++++++++++++++++++++++++++
[examples]$ python testselect.py
OK
Traceback (most recent call last):
  File "testselect.py", line 15, in ?
    print app.verifySelectLength('theSelect', '7')
  File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/xmlrpclib.py", \
line 1029, in __call__  return self.__send(self.__name, args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/xmlrpclib.py", \
line 1316, in __request  verbose=self.__verbose
  File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/xmlrpclib.py", \
line 1080, in request  return self._parse_response(h.getfile(), sock)
  File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/xmlrpclib.py", \
line 1219, in _parse_response  return u.close()
  File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/xmlrpclib.py", \
line 742, in close  raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 8001: 'function verifySelectLength not found'>

+++++++++++++++++++++++++++++++++++
[examples]$ ruby testselect.rb
OK
/usr/local/lib/ruby/1.8/xmlrpc/client.rb:541:in `do_rpc': Wrong content-type:  \
(RuntimeError) <?xml version='1.0'?>
<methodResponse>
<fault>
<value><struct>
<member>
<name>faultCode</name>
<value><int>8001</int></value>
</member>
<member>
<name>faultString</name>
<value><string>function verifySelectLength not found</string></value>
</member>
</struct></value>
</fault>
</methodResponse>
        from /usr/local/lib/ruby/1.8/xmlrpc/client.rb:409:in `call2'
        from /usr/local/lib/ruby/1.8/xmlrpc/client.rb:399:in `call'
        from testselect.rb:13


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.public.thoughtworks.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

_______________________________________________
Selenium-commits mailing list
Selenium-commits@lists.public.thoughtworks.org
http://lists.public.thoughtworks.org/mailman/listinfo/selenium-commits


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic