<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>test/unit/selenium/client/extensions_test.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -6,6 +6,43 @@
 
  - Upgraded RSpec support to 1.1.12
 
+ - Added popup support in wait_for semantics. e.g.
+
+    click 'my_button', :wait_for =&gt; :popup, :window =&gt; 'a window id'
+ 
+ - Fixed :wait_for =&gt; :text and :wait_for =&gt; :no_text semantics
+   Thank you Wade Catron for finding the reporting this bug!
+   
+   The new semantics are:
+   
+   If you do not provide any locator the text is searched in the entire
+   body of the page. e.g.
+   
+    click 'my_button', :wait_for =&gt; :text, :text =&gt; &quot;Congratulations&quot;
+     
+   If you provide and element locator the text search is scoped to the 
+   innerHTML of that element. e.g.
+
+    click 'my_button', :wait_for =&gt; :text, :element =&gt; &quot;notification_box&quot;, :text =&gt; &quot;Preferences Saved!&quot;
+    
+  *** WARNING ****
+  
+    In the process I had to change the signature of the wait_for_text and
+    wait_for_no_text methods. Please update your code if you were using
+    directly any of these 2 methods:
+    
+    OLD:  wait_for_text(locator, text, timeout_in_seconds=nil)	  
+    NEW:  wait_for_text(text, locator=nil, timeout_in_seconds=nil)
+
+    OLD:  wait_for_no_text(locator, text, timeout_in_seconds=nil)	  
+    NEW:  wait_for_no_text(text, locator=nil, timeout_in_seconds=nil)
+
+ - More idiomatic methods to retrieves all window ids, names and titles:
+       .all_window_ids, .all_window_names, all_window_titles
+ 
+ - RSpec Helper automatically set context when starting a new test
+   (lib/selenium/rspec/spec_helper)
+	  
 1.2.9 (2008-11-04)
 ==================
 </diff>
      <filename>ChangeLog</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ module Selenium
 		    } catch(e) {
 		      element = null;
 		    }
-		    element != null
+		    element != null;
 		    EOS
 
 		    wait_for_condition script, timeout_in_seconds
@@ -43,7 +43,7 @@ module Selenium
 		    } catch(e) {
 		      element = null;
 		    }
-		    element == null
+		    element == null;
 		    EOS
 
 		    wait_for_condition script, timeout_in_seconds
@@ -66,17 +66,17 @@ module Selenium
               } catch(e) {
                 text = null;
               }
-              text != null
+              text != null;
           EOS
         else
   		    &lt;&lt;-EOS
   		        var element;
                 try {
-                  element = selenium.browserbot.getCurrentWindow().find('#{locator}');
+                  element = selenium.browserbot.getCurrentWindow().findElement('#{locator}');
                 } catch(e) {
                   element = null;
                 }
-                element != null &amp;&amp; element.innerHTML == '#{text}'&quot;
+                element != null &amp;&amp; element.innerHTML == '#{text}'&quot;;
           EOS
         end          
 
@@ -90,16 +90,32 @@ module Selenium
 			#
 			# If a non nil locator is provided, the text will be
 			# detected within the innerHTML of the element identified by the locator.			
-		  def wait_for_no_text(locator, original_text, timeout_in_seconds=nil)
-		    script = &quot;var element;
-		              try {
-		                element = selenium.browserbot.findElement('#{locator}');
-		              } catch(e) {
-		                element = null;
-		              }
-		              element != null &amp;&amp; element.innerHTML != '#{original_text}'&quot;
-
-		    wait_for_condition script, time
+		  def wait_for_no_text(original_text, locator=nil, timeout_in_seconds=nil)
+		    script = case locator
+		    when nil:
+		      &lt;&lt;-EOS
+              var text;
+              try {
+                text = selenium.browserbot.getCurrentWindow().find('#{original_text}');
+              } catch(e) {
+                text = false;
+              }
+              text == false;
+		      EOS
+		    else
+          &lt;&lt;-EOS
+              var element;
+              
+              try {
+                element = selenium.browserbot.findElement('#{locator}');
+              } catch(e) {
+                element = null;
+              }
+              alert(element);
+              element != null &amp;&amp; element.innerHTML != '#{original_text}'&quot;;
+           EOS
+		    end
+        wait_for_condition script, timeout_in_seconds
 		  end
 
 			# Wait for a field to get a specific value (the wait in happenning browser side).
@@ -110,7 +126,7 @@ module Selenium
 		              } catch(e) {
 		                element = null;
 		              }
-		              element != null &amp;&amp; element.value == '#{expected_value}'&quot;
+		              element != null &amp;&amp; element.value == '#{expected_value}'&quot;;
 
 		    wait_for_condition script, timeout_in_seconds
 		  end</diff>
      <filename>lib/selenium/client/extensions.rb</filename>
    </modified>
    <modified>
      <diff>@@ -84,7 +84,7 @@ module Selenium
 	      elsif options[:wait_for] == :text
 	          wait_for_text options[:text], options[:element], options[:timeout_in_seconds]
 	      elsif options[:wait_for] == :no_text
-	          wait_for_no_text options[:text], options[:timeout_in_seconds]
+          wait_for_no_text options[:text], options[:element], options[:timeout_in_seconds]
 	      elsif options[:wait_for] == :effects
 	          wait_for_effects options[:timeout_in_seconds]
 	      elsif options[:wait_for] == :popup
@@ -289,6 +289,7 @@ module Selenium
       # click. e.g.
       #
       # * go_back :wait_for =&gt; :page                                                   # will wait for a new page to load
+      # * go_back :wait_for =&gt; :popup, :window =&gt; 'a window id'                        # will wait for a new popup window to appear. Also selects the popup window for you provide `:select =&gt; true`
       # * go_back :wait_for =&gt; :ajax                                                   # will wait for all ajax requests to be completed (Prototype only)
       # * go_back :wait_for =&gt; :effects                                                # will wait for all Prototype effects to be rendered
       # * go_back :wait_for =&gt; :element, :element =&gt; 'new_element_id'                  # will wait for an element to be present/appear</diff>
      <filename>lib/selenium/client/idiomatic.rb</filename>
    </modified>
    <modified>
      <diff>@@ -19,6 +19,8 @@ describe &quot;Google Search&quot; do
     page.value(&quot;q&quot;).should eql(&quot;Selenium SeleniumHQ&quot;)
     page.click &quot;btnG&quot;, :wait_for =&gt; :text, :text =&gt; &quot;Selenium SeleniumHQ&quot;
     page.wait_for :wait_for =&gt; :text, :locator =&gt; 'q', :text =&gt; &quot;Selenium SeleniumHQ&quot;
+    page.wait_for :wait_for =&gt; :no_text, :locator =&gt; 'q', :text =&gt; &quot;Mercury&quot;
+    page.wait_for :wait_for =&gt; :no_text, :text =&gt; &quot;Gre sacdas asdcasd&quot;
     page.title.should eql(&quot;Selenium SeleniumHQ - Google Search&quot;)
   end
 </diff>
      <filename>test/integration/smoke/google_search_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -144,13 +144,13 @@ unit_tests do
 
   test &quot;wait_for waits for text to NOT be present when no_text option is provided&quot; do
     client = Class.new { include Selenium::Client::Idiomatic }.new
-    client.expects(:wait_for_no_text).with(&quot;some text&quot;, nil)
-    client.wait_for :wait_for =&gt; :no_text, :text =&gt; &quot;some text&quot;
+    client.expects(:wait_for_no_text).with(&quot;some text&quot;, &quot;a_locator&quot;, nil)
+    client.wait_for :wait_for =&gt; :no_text, :element =&gt; 'a_locator', :text =&gt; &quot;some text&quot;
   end
 
-  test &quot;wait_for waits for no text with explicit timeout when one is provided&quot; do
+  test &quot;wait_for waits for no text with explicit timeout and locator when none are provided&quot; do
     client = Class.new { include Selenium::Client::Idiomatic }.new
-    client.expects(:wait_for_no_text).with(&quot;some text&quot;, :the_timeout)
+    client.expects(:wait_for_no_text).with(&quot;some text&quot;, nil, :the_timeout)
     client.wait_for :wait_for =&gt; :no_text, :text =&gt; &quot;some text&quot;,
                     :timeout_in_seconds =&gt; :the_timeout
   end</diff>
      <filename>test/unit/selenium/client/idiomatic_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>ec84bc475ed40dbad46fdae2feec0c5040e1810b</id>
    </parent>
  </parents>
  <author>
    <name>Philippe Hanrigou</name>
    <email>philippe.hanrigou@gmail.com</email>
  </author>
  <url>http://github.com/ph7/selenium-client/commit/d351fc94dc35d6d244d27036d1d812dec78e00a8</url>
  <id>d351fc94dc35d6d244d27036d1d812dec78e00a8</id>
  <committed-date>2009-02-02T19:59:08-08:00</committed-date>
  <authored-date>2009-02-02T19:59:08-08:00</authored-date>
  <message>Fixing demantics for :wait_for =&gt; :no_text</message>
  <tree>f5ae90648e8caad8996d863ae1ef3ae6e4be73bd</tree>
  <committer>
    <name>Philippe Hanrigou</name>
    <email>philippe.hanrigou@gmail.com</email>
  </committer>
</commit>
