download tc_cookies.rb
Language: Ruby
LOC: 100
Project Info
WWW__Mechanize(mechanize)
Server: RubyForge (SVN)
Type: svn
...anize\mechanize\trunk\test\
   proxy.rb
   server.rb
   servlets.rb
   ssl_server.rb
   tc_authenticate.rb
   tc_bad_links.rb
   tc_checkboxes.rb
   tc_cookie_class.rb
   tc_cookie_jar.rb
   tc_cookies.rb
   tc_errors.rb
   tc_form_no_inputname.rb
   tc_forms.rb
   tc_frames.rb
   tc_gzipping.rb
   tc_links.rb
   tc_mech.rb
   tc_multi_select.rb
   tc_no_attributes.rb
   tc_page.rb
   tc_pluggable_parser.rb
   tc_post_form.rb
   tc_pretty_print.rb
   tc_proxy.rb
   tc_radiobutton.rb
   tc_response_code.rb
   tc_save_file.rb
   tc_select.rb
   tc_select_all.rb
   tc_select_none.rb
   tc_select_noopts.rb
   tc_set_fields.rb
   tc_ssl_server.rb
   tc_textarea.rb
   tc_upload.rb
   tc_watches.rb
   test_includes.rb
   ts_mech.rb

$:.unshift File.join(File.dirname(__FILE__), "..", "lib")

require 'test/unit'
require 'rubygems'
require 'mechanize'
require 'test_includes'

class CookiesMechTest < Test::Unit::TestCase
  include TestMethods

  def setup
    @agent = WWW::Mechanize.new
  end

  def test_send_cookies
    page = @agent.get("http://localhost:#{PORT}/many_cookies")
    page = @agent.get("http://localhost:#{PORT}/send_cookies")
    assert_equal(2, page.links.length)
    assert_not_nil(page.links.find { |l| l.text == "name:Aaron" })
    assert_not_nil(page.links.find { |l| l.text == "no_expires:nope" })
  end

  def test_no_space_cookies
    page = @agent.get("http://localhost:#{PORT}/one_cookie_no_space")
    assert_equal(1, @agent.cookies.length)
    foo_cookie = @agent.cookies.find { |k| k.name == 'foo' }
    assert_not_nil(foo_cookie, 'Foo cookie was nil')
    assert_equal('bar', foo_cookie.value)
    assert_equal('/', foo_cookie.path)
    assert_equal(true, Time.now < foo_cookie.expires)
  end

  def test_many_cookies_as_string
    page = @agent.get("http://localhost:#{PORT}/many_cookies_as_string")
    assert_equal(4, @agent.cookies.length)

    name_cookie = @agent.cookies.find { |k| k.name == "name" }
    assert_not_nil(name_cookie, "Name cookie was nil")
    assert_equal("Aaron", name_cookie.value)
    assert_equal("/", name_cookie.path)
    assert_equal(true, Time.now < name_cookie.expires)

    expired_cookie = @agent.cookies.find { |k| k.name == "expired" }
    assert_nil(expired_cookie, "Expired cookie was not nil")

    no_exp_cookie = @agent.cookies.find { |k| k.name == "no_expires" }
    assert_not_nil(no_exp_cookie, "No expires cookie is nil")
    assert_equal("nope", no_exp_cookie.value)
    assert_equal("/", no_exp_cookie.path)
    assert_nil(no_exp_cookie.expires)

    path_cookie = @agent.cookies.find { |k| k.name == "a_path" }
    assert_not_nil(path_cookie, "Path cookie is nil")
    assert_equal("some_path", path_cookie.value)
    assert_equal(true, Time.now < path_cookie.expires)

    no_path_cookie = @agent.cookies.find { |k| k.name == "no_path" }
    assert_not_nil(no_path_cookie, "No path cookie is nil")
    assert_equal("no_path", no_path_cookie.value)
    assert_equal("/many_cookies_as_string", no_path_cookie.path)
    assert_equal(true, Time.now < no_path_cookie.expires)
  end

  def test_many_cookies
    page = @agent.get("http://localhost:#{PORT}/many_cookies")
    assert_equal(4, @agent.cookies.length)

    name_cookie = @agent.cookies.find { |k| k.name == "name" }
    assert_not_nil(name_cookie, "Name cookie was nil")
    assert_equal("Aaron", name_cookie.value)
    assert_equal("/", name_cookie.path)
    assert_equal(true, Time.now < name_cookie.expires)

    expired_cookie = @agent.cookies.find { |k| k.name == "expired" }
    assert_nil(expired_cookie, "Expired cookie was not nil")

    no_exp_cookie = @agent.cookies.find { |k| k.name == "no_expires" }
    assert_not_nil(no_exp_cookie, "No expires cookie is nil")
    assert_equal("nope", no_exp_cookie.value)
    assert_equal("/", no_exp_cookie.path)
    assert_nil(no_exp_cookie.expires)

    path_cookie = @agent.cookies.find { |k| k.name == "a_path" }
    assert_not_nil(path_cookie, "Path cookie is nil")
    assert_equal("some_path", path_cookie.value)
    assert_equal(true, Time.now < path_cookie.expires)

    no_path_cookie = @agent.cookies.find { |k| k.name == "no_path" }
    assert_not_nil(no_path_cookie, "No path cookie is nil")
    assert_equal("no_path", no_path_cookie.value)
    assert_equal("/many_cookies", no_path_cookie.path)
    assert_equal(true, Time.now < no_path_cookie.expires)
  end

  def test_get_cookie
    assert_equal(true,
      @agent.cookie_jar.empty?(
      URI::parse("http://localhost:#{PORT}/one_cookie")))

    assert_equal(0, @agent.cookies.length)

    page = @agent.get("http://localhost:#{PORT}/one_cookie")
    assert_equal(1, @agent.cookies.length)

    cookie = @agent.cookies.first
    assert_equal("foo", cookie.name)
    assert_equal("bar", cookie.value)
    assert_equal("/", cookie.path)
    assert_equal("localhost", cookie.domain)

    assert_equal(false,
      @agent.cookie_jar.empty?(
      URI::parse("http://localhost:#{PORT}/one_cookie")))
    page = @agent.get("http://localhost:#{PORT}/one_cookie")

    assert_equal(1, @agent.cookies.length)

    cookie = @agent.cookies.first
    assert_equal("foo", cookie.name)
    assert_equal("bar", cookie.value)
    assert_equal("/", cookie.path)
    assert_equal("localhost", cookie.domain)
  end
end

About Koders | Resources | Downloads | Support | Black Duck | Submit Project | Terms of Service | DMCA | Privacy Policy | Site Map| Contact Us