gmail_test 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.6
data/gmail_test.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "gmail_test"
8
- s.version = "0.0.5"
8
+ s.version = "0.0.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Daniel"]
12
- s.date = "2011-11-08"
12
+ s.date = "2011-11-18"
13
13
  s.description = "description"
14
14
  s.email = "daniel@oxos.pl"
15
15
  s.extra_rdoc_files = [
@@ -1,9 +1,9 @@
1
1
  module Assertions
2
2
  module Base
3
- def assert_appears(selector,&block)
4
- assert has_no_css?(selector)
5
- block.call
6
- wait_until{ has_css?(selector) }
7
- end
3
+ def assert_appears(selector,options={},&block)
4
+ assert has_no_css?(selector, options)
5
+ block.call
6
+ wait_until{ has_css?(selector, options) }
7
+ end
8
8
  end
9
9
  end
@@ -1,41 +1,71 @@
1
+ # These assertions are compatible with gmail with english language set in settings.
2
+ # They do tests using html basic view for gmail.
1
3
  module Assertions
2
4
  module Gmail
5
+ def assert_logged_in(email,password)
6
+ visit "http://gmail.com"
7
+ fill_in "Email", :with => email
8
+ fill_in "Passwd", :with => password
9
+ assert_appears("#loading") do
10
+ click_button "Sign in"
11
+ end
12
+ wait_until { has_css?("iframe#canvas_frame") }
13
+ assert_basic_html_view
14
+ wait_until{ has_css?("#guser b.gb4", :text => email) }
15
+ end
3
16
 
4
- def assert_logged_in(email,password)
5
- visit "http://gmail/com"
6
- fill_in "Email", :with => email
7
- fill_in "Passwd", :with => password
8
- assert_appears("#loading") do
9
- click_button "Sign in"
10
- end
11
- wait_until { has_no_css?("#loading") }
12
- within_frame "canvas_frame" do
13
- wait_until { has_css?("#gbi4m1", :text => email) }
14
- end
15
- end
16
-
17
- def assert_logged_out
18
- within_frame "canvas_frame" do
19
- find("#gbi4m1").click
20
- click_link "Sign out"
21
- end
22
- switch_to_main_window
23
- wait_until { assert has_css?(".signin-box #gaia_loginform") }
24
- end
25
-
26
- def assert_email_sent(subject,body,to)
27
- switch_to_main_window/
28
- find("div", :text => "Compose mail").click
29
- within_frame "canvas_frame" do
30
- wait_until { assert has_css?("textarea[name='to']") }
31
- end
32
- end
33
-
34
- protected
35
-
36
- def switch_to_main_window
37
- page.driver.browser.switch_to.window page.driver.browser.window_handles.first
38
- end
17
+ def assert_logged_out
18
+ click_link "Sign out"
19
+ assert has_css?("#gaia_loginform")
20
+ end
39
21
 
22
+ def assert_email_sent(subject,body,to,cc)
23
+ find("a",:text => "Compose Mail").click
24
+ wait_until { has_css?("textarea[name='to']") }
25
+ fill_in("to", :with => to)
26
+ fill_in("cc", :with => cc)
27
+ fill_in("subject", :with => subject)
28
+ fill_in("body", :with => body)
29
+ assert_appears("b", :text => "Your message has been sent.") do
30
+ find("input[name='nvp_bu_send']").click
31
+ end
32
+ end
33
+
34
+ def assert_email_received(from,subject,&block)
35
+ start_time = Time.now
36
+ wait_time = 20
37
+ success = false
38
+
39
+ begin
40
+ visit "http://mail.google.com/?ui=html"
41
+ within("form[name='f'] table.th tbody tr:nth-child(1)") do
42
+ if find("td:nth-child(2)").text =~ Regexp.new(from) && find("td:nth-child(3)").text =~ Regexp.new(subject)
43
+ success = true
44
+ else
45
+ raise "timeout"
46
+ end
47
+ end
48
+ rescue
49
+ assert false if (Time.now - start_time) >= wait_time
50
+ sleep 3
51
+ retry
52
+ end
53
+
54
+ if block
55
+ within("form[name='f'] table.th tbody tr:nth-child(1)") do
56
+ find("td:nth-child(3) a").click
57
+ end
58
+
59
+ wait_until { find("table.h tr:first").text =~ /#{subject}/ }
60
+
61
+ body = all("div.msg").last.text
62
+ block.call(body)
63
+ end
64
+ end
65
+
66
+ def assert_basic_html_view()
67
+ visit "http://mail.google.com/?ui=html"
68
+ find("td#bm b", :text => "basic HTML")
69
+ end
40
70
  end
41
71
  end
data/lib/gmail_test.rb CHANGED
@@ -7,7 +7,8 @@ require "rack"
7
7
  require "ruby-debug"
8
8
 
9
9
  Capybara.current_driver = :selenium
10
+ Capybara.default_wait_time = 10
10
11
 
11
12
  require File.expand_path(File.dirname(__FILE__)) + "/gmail_test/assertions.rb"
12
- MiniTest::Assertion.send(:include,Assertions::Base)
13
+ MiniTest::Unit::TestCase.send(:include,Assertions::Base)
13
14
  MiniTest::Unit::TestCase.send(:include,Capybara::DSL)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gmail_test
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-08 00:00:00.000000000Z
12
+ date: 2011-11-18 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &2155992780 !ruby/object:Gem::Requirement
16
+ requirement: &2151895840 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2155992780
24
+ version_requirements: *2151895840
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: jeweler
27
- requirement: &2155990960 !ruby/object:Gem::Requirement
27
+ requirement: &2151893800 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.6.4
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2155990960
35
+ version_requirements: *2151893800
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: capybara
38
- requirement: &2155963240 !ruby/object:Gem::Requirement
38
+ requirement: &2151889760 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 1.1.1
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2155963240
46
+ version_requirements: *2151889760
47
47
  description: description
48
48
  email: daniel@oxos.pl
49
49
  executables: []
@@ -85,7 +85,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
85
  version: '0'
86
86
  segments:
87
87
  - 0
88
- hash: 1445117353697055410
88
+ hash: 666539408696735085
89
89
  required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  none: false
91
91
  requirements: