<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>test/integration/api/wait_for_element_spec.rb</filename>
    </added>
    <added>
      <filename>test/integration/sample-app/public/jquery-1.3.2.js</filename>
    </added>
    <added>
      <filename>test/integration/sample-app/public/prototype-1.6.0.3.js</filename>
    </added>
    <added>
      <filename>test/integration/sample-app/public/prototype.html</filename>
    </added>
    <added>
      <filename>test/integration/sample-app/sample_app.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/AUTHORS</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/COPYING</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/KNOWN-ISSUES</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/RDOX</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/README</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/Rakefile</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/SPEC</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/bin/rackup</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/contrib/rack_logo.svg</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/example/lobster.ru</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/example/protectedlobster.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/example/protectedlobster.ru</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/adapter/camping.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/auth/abstract/handler.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/auth/abstract/request.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/auth/basic.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/auth/digest/md5.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/auth/digest/nonce.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/auth/digest/params.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/auth/digest/request.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/auth/openid.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/builder.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/cascade.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/commonlogger.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/conditionalget.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/content_length.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/deflater.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/directory.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/file.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/handler.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/handler/cgi.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/handler/evented_mongrel.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/handler/fastcgi.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/handler/lsws.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/handler/mongrel.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/handler/scgi.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/handler/swiftiplied_mongrel.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/handler/thin.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/handler/webrick.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/head.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/lint.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/lobster.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/methodoverride.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/mime.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/mock.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/recursive.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/reloader.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/request.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/response.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/session/abstract/id.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/session/cookie.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/session/memcache.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/session/pool.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/showexceptions.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/showstatus.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/static.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/urlmap.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/lib/rack/utils.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/cgi/lighttpd.conf</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/cgi/test</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/cgi/test.fcgi</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/cgi/test.ru</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_auth_basic.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_auth_digest.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_auth_openid.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_builder.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_camping.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_cascade.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_cgi.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_commonlogger.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_conditionalget.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_content_length.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_deflater.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_directory.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_fastcgi.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_file.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_handler.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_head.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_lint.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_lobster.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_methodoverride.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_mock.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_mongrel.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_recursive.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_request.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_response.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_session_cookie.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_session_memcache.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_session_pool.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_showexceptions.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_showstatus.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_static.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_thin.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_urlmap.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_utils.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/spec_rack_webrick.rb</filename>
    </added>
    <added>
      <filename>vendor/rack-0.9.1/test/testrequest.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/AUTHORS</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/CHANGES</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/LICENSE</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/README.rdoc</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/Rakefile</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/app_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/application_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/builder_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/compat_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/custom_error_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/erb_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/events_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/filter_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/haml_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/helper.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/mapped_error_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/pipeline_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/public/foo.xml</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/sass_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/sessions_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/streaming_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/sym_params_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/template_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/use_in_file_templates_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/foo.builder</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/foo.erb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/foo.haml</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/foo.sass</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/foo_layout.erb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/foo_layout.haml</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/layout_test/foo.builder</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/layout_test/foo.erb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/layout_test/foo.haml</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/layout_test/foo.sass</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/layout_test/layout.builder</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/layout_test/layout.erb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/layout_test/layout.haml</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/layout_test/layout.sass</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/no_layout/no_layout.builder</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/compat/views/no_layout/no_layout.haml</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/lib/sinatra.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/lib/sinatra/base.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/lib/sinatra/compat.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/lib/sinatra/images/404.png</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/lib/sinatra/images/500.png</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/lib/sinatra/main.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/lib/sinatra/test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/lib/sinatra/test/bacon.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/lib/sinatra/test/rspec.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/lib/sinatra/test/spec.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/lib/sinatra/test/unit.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/sinatra.gemspec</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/base_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/builder_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/data/reload_app_file.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/erb_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/filter_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/haml_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/helper.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/helpers_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/mapped_error_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/middleware_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/options_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/reload_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/request_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/result_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/routing_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/sass_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/sinatra_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/static_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/templates_test.rb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/views/hello.builder</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/views/hello.erb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/views/hello.haml</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/views/hello.sass</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/views/hello.test</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/views/layout2.builder</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/views/layout2.erb</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/views/layout2.haml</filename>
    </added>
    <added>
      <filename>vendor/sinatra-0.9.0.4/test/views/layout2.test</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -35,11 +35,13 @@ desc &quot;Start a Selenium remote control, run all integration tests and stop the re
 task :'ci:integration' =&gt; [ :clean, :'test:unit' ] do
   Rake::Task[:&quot;selenium:rc:stop&quot;].execute [] rescue nil
   begin
+    Rake::Task[:&quot;sample_app:restart&quot;].execute []   
     Rake::Task[:&quot;selenium:rc:start&quot;].execute []
     Rake::Task[:&quot;test:integration&quot;].execute []
     Rake::Task[:&quot;examples&quot;].execute []
   ensure
     Rake::Task[:&quot;selenium:rc:stop&quot;].execute []
+    Rake::Task[:&quot;sample_app:restart&quot;].execute [] 
   end
 end
 
@@ -177,6 +179,25 @@ Spec::Rake::SpecTask.new(&quot;test:parallel&quot;) do |t|
     t.spec_opts &lt;&lt; &quot;--format=progress&quot;                
 end
 
+desc &quot;Launch Sample App&quot;
+task :'sample_app:start' do
+  Nautilus::Shell.new.run \
+      &quot;\&quot;#{File.expand_path(File.dirname(__FILE__) + '/test/integration/sample-app/sample_app.rb')}\&quot;&quot;,
+      :background =&gt; true
+end
+
+desc &quot;Stop Sample App&quot;
+task :'sample_app:stop' do
+  Net::HTTP.get(&quot;localhost&quot;, '/shutdown', 4567)
+end
+
+desc &quot;Restart Sample App&quot;
+task :'sample_app:restart' do
+  Rake::Task[:&quot;sample_app:stop&quot;].execute([]) rescue nil
+  Rake::Task[:&quot;sample_app:start&quot;].execute []
+end
+
+
 specification = Gem::Specification.new do |s|
   s.name = &quot;selenium-client&quot;
   s.summary = &quot;Official Ruby Client for Selenium RC.&quot;</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -24,32 +24,14 @@ module Selenium
 			
 			# Wait for an element to be present (the wait in happenning browser side).
 		  def wait_for_element(locator, timeout_in_seconds=nil)
-		    script = &lt;&lt;-EOS
-		    var element;
-		    try {
-		      element = selenium.browserbot.findElement(#{js_string locator});
-		    } catch(e) {
-		      element = null;
-		    }
-		    element != null;
-		    EOS
-
-		    wait_for_condition script, timeout_in_seconds
+		    wait_for_condition find_element_script(locator, &quot;element != null&quot;), 
+		                       timeout_in_seconds
 		  end
 
 			# Wait for an element to NOT be present (the wait in happenning browser side).
 		  def wait_for_no_element(locator, timeout_in_seconds=nil)
-		    script = &lt;&lt;-EOS
-		    var element;
-		    try {
-		      element = selenium.browserbot.findElement(#{js_string locator});
-		    } catch(e) {
-		      element = null;
-		    }
-		    element == null;
-		    EOS
-
-		    wait_for_condition script, timeout_in_seconds
+		    wait_for_condition find_element_script(locator, &quot;element == null&quot;), 
+		                       timeout_in_seconds
 		  end
 
 			# Wait for some text to be present (the wait in happenning browser side).
@@ -65,22 +47,14 @@ module Selenium
   		    &lt;&lt;-EOS
               var text;
               try {
-                text = selenium.browserbot.getCurrentWindow().find(#{js_string text});
+                text = selenium.browserbot.getCurrentWindow().find('#{quote_escaped(text)}');
               } catch(e) {
                 text = null;
               }
               text != null;
           EOS
         else
-  		    &lt;&lt;-EOS
-  		        var element;
-                try {
-                  element = selenium.browserbot.getCurrentWindow().findElement(#{js_string locator});
-                } catch(e) {
-                  element = null;
-                }
-                element != null &amp;&amp; element.innerHTML == #{js_string text};
-          EOS
+          find_element_script locator, &quot;element != null &amp;&amp; element.innerHTML == '#{quote_escaped(text)}'&quot;
         end          
 
 		    wait_for_condition script, timeout_in_seconds
@@ -99,24 +73,14 @@ module Selenium
 		      &lt;&lt;-EOS
               var text;
               try {
-                text = selenium.browserbot.getCurrentWindow().find(#{js_string original_text});
+                text = selenium.browserbot.getCurrentWindow().find('#{quote_escaped(original_text)}');
               } catch(e) {
                 text = false;
               }
               text == false;
 		      EOS
 		    else
-          &lt;&lt;-EOS
-              var element;
-              
-              try {
-                element = selenium.browserbot.findElement(#{js_string locator});
-              } catch(e) {
-                element = null;
-              }
-              alert(element);
-              element != null &amp;&amp; element.innerHTML != #{js_string original_text};
-           EOS
+		      find_element_script locator, &quot;element == null || element.innerHTML != '#{quote_escaped(original_text)}'&quot;
 		    end
         wait_for_condition script, timeout_in_seconds
 		  end
@@ -125,11 +89,11 @@ module Selenium
 		  def wait_for_field_value(locator, expected_value, timeout_in_seconds=nil)
 		    script = &quot;var element;
 		              try {
-		                element = selenium.browserbot.findElement(#{js_string locator});
+		                element = selenium.browserbot.findElement('#{quote_escaped(locator)}');
 		              } catch(e) {
 		                element = null;
 		              }
-		              element != null &amp;&amp; element.value == #{js_string expected_value};&quot;
+		              element != null &amp;&amp; element.value == '#{quote_escaped(locator)}';&quot;
 
 		    wait_for_condition script, timeout_in_seconds
 		  end
@@ -141,18 +105,24 @@ module Selenium
         when :jquery
           JavascriptFrameworks::JQuery
         else
-          raise &quot;Unsupported Javascript Framework: #{js_string framework_name}&quot;
+          raise &quot;Unsupported Javascript Framework: #{framework_name}&quot;
         end
       end
 
+		  def find_element_script(locator, return_value)
+		    script = &lt;&lt;-EOS
+  		    var element;
+  		    try {
+  		      element = selenium.browserbot.findElement('#{quote_escaped(locator)}');
+  		    } catch(e) {
+  		      element = null;
+  		    }
+  		    #{return_value};
+		    EOS
+		  end
 
-      private
-      #-------------------------------------------------------------------------
-
-      # Returns a new string for use inside javascript code, using single quotes
-      def js_string(ruby_string)
-        escaped_single_quotes = ruby_string.gsub(&quot;'&quot;, %q&lt;\\\'&gt;)
-        return &quot;#{js_string escaped_single_quotes}&quot;
+      def quote_escaped(locator)
+        locator.gsub(/'/, %q&lt;\\\'&gt;)
       end
 
     end</diff>
      <filename>lib/selenium/client/extensions.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ describe &quot;Remote Control Logs Retrieval&quot; do
   it &quot;can retrieve logs even when no command were issued&quot; do
     page.open &quot;http://localhost:4444/selenium-server/tests/html/test_click_page1.html&quot;
     logs = selenium_driver.retrieve_last_remote_control_logs
-    logs.should =~ %r{request: getNewBrowserSession\[\*[a-z0-9]+, http://localhost:3000, \]}
+    logs.should =~ %r{request: getNewBrowserSession\[\*[a-z0-9]+, http://localhost:4567, \]}
     logs.should =~ %r{request: open\[http://localhost:4444/selenium-server/tests/html/test_click_page1.html, \]}
     logs.should =~ %r{request: retrieveLastRemoteControlLogs\[, \]}
     logs.should =~ %r{org.openqa.selenium.server.SeleniumDriverResourceHandler - Got result: OK}
@@ -22,7 +22,7 @@ describe &quot;Remote Control Logs Retrieval&quot; do
     page.open &quot;http://localhost:4444/selenium-server/tests/html/test_click_page1.html&quot;
     page.get_title
     logs = selenium_driver.retrieve_last_remote_control_logs
-    logs.should =~ %r{request: getNewBrowserSession\[\*[a-z0-9]+, http://localhost:3000, \]}
+    logs.should =~ %r{request: getNewBrowserSession\[\*[a-z0-9]+, http://localhost:4567, \]}
     logs.should =~ %r{request: open\[http://localhost:4444/selenium-server/tests/html/test_click_page1.html, \]}
     logs.should =~ %r{request: getTitle\[, \]}
     logs.should =~ %r{request: retrieveLastRemoteControlLogs\[, \]}</diff>
      <filename>test/integration/api/retrieve_last_remote_control_logs_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,11 @@ Spec::Runner.configure do |config|
   end
 
   config.append_after(:each) do
-    selenium_driver.stop
+    begin
+      selenium_driver.stop
+    rescue Exception =&gt; e
+      STDERR.puts &quot;Could not properly close selenium session : #{e.inspect}&quot;
+    end
   end
 
   def selenium_driver
@@ -23,15 +27,14 @@ Spec::Runner.configure do |config|
   end
 
   def create_selenium_driver
-    remote_control_server = ENV['SELENIUM_RC_HOST'] || &quot;localhost&quot;
-    port = ENV['SELENIUM_RC_PORT'] || 4444
-    browser = ENV['SELENIUM_BROWSER'] || &quot;*firefox&quot;
-    timeout = ENV['SELENIUM_RC_TIMEOUT'] || 60
     application_host = ENV['SELENIUM_APPLICATION_HOST'] || &quot;localhost&quot;
-    application_port = ENV['SELENIUM_APPLICATION_PORT'] || &quot;3000&quot;
-    @selenium_driver = Selenium::SeleniumDriver.new(
-        remote_control_server, port, browser, 
-        &quot;http://#{application_host}:#{application_port}&quot;, timeout)
+    application_port = ENV['SELENIUM_APPLICATION_PORT'] || &quot;4567&quot;
+    @selenium_driver = Selenium::SeleniumDriver.new \
+        :host =&gt; (ENV['SELENIUM_RC_HOST'] || &quot;localhost&quot;),
+        :port =&gt; (ENV['SELENIUM_RC_PORT'] || 4444),
+        :browser =&gt; (ENV['SELENIUM_BROWSER'] || &quot;*firefox&quot;),
+        :timeout_in_seconds =&gt; (ENV['SELENIUM_RC_TIMEOUT'] || 10),
+        :url =&gt; &quot;http://#{application_host}:#{application_port}&quot;
   end
   
   def start_new_browser_session
@@ -39,5 +42,17 @@ Spec::Runner.configure do |config|
     selenium_driver.set_context &quot;Starting example '#{self.description}'&quot;
   end
 
+  def should_timeout
+    begin
+      yield
+      raise &quot;Should have timed out&quot;
+    rescue Timeout::Error =&gt; e
+      # All good
+    rescue Selenium::CommandError =&gt; e
+      raise unless e.message =~ /ed out after/
+      # All good
+    end
+  end
+
 end
 </diff>
      <filename>test/integration/spec_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -123,4 +123,14 @@ unit_tests do
     client.wait_for_effects :timeout_in_seconds =&gt; :explicit_timeout
   end
 
+  test &quot;quote_escaped returns a locator has is when its does not include any single quote&quot; do
+    client = Class.new { include Selenium::Client::Extensions }.new
+    assert_equal &quot;the_locator&quot;, client.quote_escaped(&quot;the_locator&quot;)
+  end
+
+  test &quot;quote_escaped escape single quotes&quot; do
+    client = Class.new { include Selenium::Client::Extensions }.new
+    assert_equal &quot;//div[@id=\\'demo-effect-appear\\']&quot;, client.quote_escaped(&quot;//div[@id='demo-effect-appear']&quot;)
+  end
+
 end
\ No newline at end of file</diff>
      <filename>test/unit/selenium/client/extensions_test.rb</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>vendor/selenium-remote-control/selenium-server-1.0-SNAPSHOT-standalone.jar</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>c03e11c5eafa65a7220b30bd61d834c65f53bb75</id>
    </parent>
  </parents>
  <author>
    <name>Philippe Hanrigou</name>
    <email>philippe.hanrigou@gmail.com</email>
  </author>
  <url>http://github.com/ph7/selenium-client/commit/b500a68c1f572be6fc1865d16ee2eb5846304bd8</url>
  <id>b500a68c1f572be6fc1865d16ee2eb5846304bd8</id>
  <committed-date>2009-02-27T16:31:12-08:00</committed-date>
  <authored-date>2009-02-27T16:31:12-08:00</authored-date>
  <message>embedding a sample application to test wait_for_xxx semantics</message>
  <tree>8a6a7987e97acdd41da0b1da65f10684e602f9e6</tree>
  <committer>
    <name>Philippe Hanrigou</name>
    <email>philippe.hanrigou@gmail.com</email>
  </committer>
</commit>
