File: test_cookies.rb

package info (click to toggle)
libwww-mechanize-ruby 1.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 956 kB
  • ctags: 883
  • sloc: ruby: 6,621; makefile: 4
file content (123 lines) | stat: -rw-r--r-- 4,450 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
require "helper"

class CookiesMechTest < Test::Unit::TestCase
  def setup
    @agent = Mechanize.new
  end

  def test_meta_tag_cookies
    cookies = @agent.cookies.length
    page = @agent.get("http://localhost/meta_cookie.html")
    assert_equal(cookies + 1, @agent.cookies.length)
  end

  def test_send_cookies
    page = @agent.get("http://localhost/many_cookies")
    page = @agent.get("http://localhost/send_cookies")
    assert_equal(3, 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/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/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("/", no_path_cookie.path)
    assert_equal(true, Time.now < no_path_cookie.expires)
  end

  def test_many_cookies
    page = @agent.get("http://localhost/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("/", 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/one_cookie")))

    assert_equal(0, @agent.cookies.length)

    page = @agent.get("http://localhost/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/one_cookie")))
    page = @agent.get("http://localhost/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