<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,2 +1,3 @@
 require 'gdata'
-require 'gdata/client'
\ No newline at end of file
+require 'gdata/client'
+require 'gdata/webmaster_tools'
\ No newline at end of file</diff>
      <filename>init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,10 +13,11 @@ require 'date'
 require 'rexml/document'
 
 module GData #:nodoc:
+  
+  class WebmasterToolsError &lt; StandardError; end #:nodoc:
+  
   class WebmasterTools &lt; GData::Client
     
-    class WebmasterToolsError &lt; StandardError; end #:nodoc:
-    
     FEED_URL = '/webmasters/tools/feeds/sites/'
     
     def initialize
@@ -86,6 +87,8 @@ module GData #:nodoc:
         when Net::HTTPCreated
           entry = REXML::Document.new(data).root
           return parse_site_entry(entry)
+        when Net::HTTPForbidden
+          raise WebmasterToolsError.new(data)
         else
           raise WebmasterToolsError
         end
@@ -97,7 +100,49 @@ module GData #:nodoc:
     # Remove site from account.
     def delete_site(site_id)
       if authenticated?
-        delete site_feed(site_id)
+        response, data = delete site_feed(site_id)
+        
+        case response
+        when Net::HTTPOK
+          return true
+        else
+          raise WebmasterToolsError.new(data)
+        end
+      else
+        raise NotAuthenticatedError
+      end
+    end
+    
+    # Initiates site ownership verification process in Webmaster Tools account.
+    #
+    # == Usage
+    #
+    # Method can be only 'htmlpage' or 'metatag', otherwise this method will raise WebmasterToolsError.
+    def verify_site(site_id, method)
+      raise WebmasterToolsError unless ['htmlpage', 'metatag'].include?(method)
+      
+      if authenticated?
+        content = '&lt;entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:wt=&quot;http://schemas.google.com/webmasters/tools/2007&quot;&gt;'
+        content &lt;&lt; '&lt;id&gt;' + site_id + '&lt;/id&gt;&lt;category scheme=&quot;http://schemas.google.com/g/2005#kind&quot; term=&quot;http://schemas.google.com/webmasters/tools/2007#site-info&quot;/&gt;'
+        content &lt;&lt; '&lt;wt:verification-method type=&quot;' + method + '&quot; in-use=&quot;true&quot;/&gt;'
+        content &lt;&lt; '&lt;/entry&gt;'
+        response, data = put(site_feed(site_id), content)
+        
+        case response
+        when Net::HTTPOK
+          entry = REXML::Document.new(data).root
+          data = parse_site_entry(entry)
+          
+          if data[:verified] and data[:title] == site_id
+            return true
+          else
+            return false
+          end
+        when Net::HTTPNotFound
+          raise WebmasterToolsError.new(data)
+        else
+          raise WebmasterToolsError
+        end
       else
         raise NotAuthenticatedError
       end
@@ -107,7 +152,7 @@ module GData #:nodoc:
     
       # Private helper method to compose site feed based on site id.
       def site_feed(site_id)
-        FEED_URL + CGI::escape(site_id)
+        FEED_URL + CGI::escape(site_id || '')
       end
       
       # Parses site entry into hash from feed partial.</diff>
      <filename>lib/gdata/webmaster_tools.rb</filename>
    </modified>
    <modified>
      <diff>@@ -64,8 +64,42 @@ context GData::WebmasterTools do
     it 'should return site data hash for freshly created site' do
       data = @wt.add_site('http://mynewsite.com')
       data[:title].should eql('http://www.mynewsite.com/')
+      data[:verification_methods][:metatag].should eql('&lt;meta name=&quot;verify-v1&quot; content=&quot;nVryYYKT4lSCwaZ/avK1utx6/gtm78x9latRJPCdCuk=&quot; &gt;')
+      data[:verification_methods][:htmlpage].should eql('google937559d39027a39d.html')
       data[:verified].should be_false
       data[:indexed].should be_false
     end
   end
+  
+  describe 'verify_site' do
+    before(:each) do
+      @xml = File.read(File.dirname(__FILE__) + '/fixtures/webmaster_tools/verify_site.xml')
+      
+      @wt = GData::WebmasterTools.new
+    end
+    
+    it 'should return true if verification succeeds' do
+      @wt.should_receive(:put).and_return([Net::HTTPOK.new(nil, nil, nil), @xml])
+      @wt.should_receive(:authenticated?).and_return(true)
+      @wt.verify_site('http://www.mysite.com/', 'metatag').should be_true
+    end
+    
+    it 'should raise an error if invalid method is supplied' do
+      lambda {
+        @wt.verify_site('http://www.mysite.com/', 'meta-tag')
+      }.should raise_error(GData::WebmasterToolsError)
+    end
+    
+    it 'should raise site not found error if account does not have this site' do
+      @wt.should_receive(:put).and_return([Net::HTTPNotFound.new(nil, nil, nil), ''])
+      @wt.should_receive(:authenticated?).and_return(true)
+      lambda {
+        @wt.verify_site('http://www.unknownsite.com', 'metatag')
+      }.should raise_error(GData::WebmasterToolsError)
+    end
+  end
+  
+  describe 'delete_site' do
+    it 'should raise WebmasterToolsError when site is not found or is missing'
+  end
 end</diff>
      <filename>spec/webmaster_tools_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>3db1a701f594732d3011b81d5ea3836824f50521</id>
    </parent>
  </parents>
  <author>
    <name>Priit  Haamer</name>
    <email>priit@fraktal.ee</email>
  </author>
  <url>http://github.com/dsisnero/gdata-ruby/commit/adf1b2e1867aaab2deeca2f3184849fe70a4e5c1</url>
  <id>adf1b2e1867aaab2deeca2f3184849fe70a4e5c1</id>
  <committed-date>2008-10-28T11:26:03-07:00</committed-date>
  <authored-date>2008-10-28T11:26:03-07:00</authored-date>
  <message>Improved site verify and delete features in Webmaster Tools client</message>
  <tree>ea0b04d4d49bb83bc51d1a856c63220c0070a008</tree>
  <committer>
    <name>Priit  Haamer</name>
    <email>priit@fraktal.ee</email>
  </committer>
</commit>
