ae_page_objects 0.4.1.dt4 → 0.4.1

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.
@@ -23,7 +23,6 @@ module AePageObjects
23
23
  autoload :Visitable, 'ae_page_objects/concerns/visitable'
24
24
  end
25
25
 
26
- autoload :Window, 'ae_page_objects/window'
27
26
  autoload :Node, 'ae_page_objects/node'
28
27
  autoload :Document, 'ae_page_objects/document'
29
28
  autoload :Element, 'ae_page_objects/element'
@@ -1,16 +1,11 @@
1
1
  module AePageObjects
2
2
  class Document < Node
3
3
  include Concerns::Visitable
4
-
5
- attr_reader :window
6
4
 
7
5
  def initialize
8
6
  super(Capybara.current_session)
9
-
10
- @window = Window.current
11
- @window.current_document = self
12
7
  end
13
-
8
+
14
9
  def document
15
10
  self
16
11
  end
@@ -1,6 +1,5 @@
1
1
  module AePageObjects
2
2
  module Singleton
3
-
4
3
  def instance
5
4
  @instance ||= new
6
5
  end
@@ -1,3 +1,3 @@
1
1
  module AePageObjects
2
- VERSION = '0.4.1.dt4'.freeze
2
+ VERSION = '0.4.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,15 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ae_page_objects
3
3
  version: !ruby/object:Gem::Version
4
- hash: -4200723772
5
- prerelease: 6
4
+ hash: 13
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
9
  - 1
10
- - dt
11
- - 4
12
- version: 0.4.1.dt4
10
+ version: 0.4.1
13
11
  platform: ruby
14
12
  authors:
15
13
  - Donnie Tognazzini
@@ -20,6 +18,7 @@ cert_chain: []
20
18
  date: 2013-07-19 00:00:00 Z
21
19
  dependencies:
22
20
  - !ruby/object:Gem::Dependency
21
+ type: :runtime
23
22
  name: capybara
24
23
  version_requirements: &id001 !ruby/object:Gem::Requirement
25
24
  none: false
@@ -31,10 +30,10 @@ dependencies:
31
30
  - 1
32
31
  - 1
33
32
  version: "1.1"
34
- prerelease: false
35
- type: :runtime
36
33
  requirement: *id001
34
+ prerelease: false
37
35
  - !ruby/object:Gem::Dependency
36
+ type: :development
38
37
  name: appraisal
39
38
  version_requirements: &id002 !ruby/object:Gem::Requirement
40
39
  none: false
@@ -47,10 +46,10 @@ dependencies:
47
46
  - 5
48
47
  - 1
49
48
  version: 0.5.1
50
- prerelease: false
51
- type: :development
52
49
  requirement: *id002
50
+ prerelease: false
53
51
  - !ruby/object:Gem::Dependency
52
+ type: :development
54
53
  name: mocha
55
54
  version_requirements: &id003 !ruby/object:Gem::Requirement
56
55
  none: false
@@ -63,10 +62,10 @@ dependencies:
63
62
  - 13
64
63
  - 3
65
64
  version: 0.13.3
66
- prerelease: false
67
- type: :development
68
65
  requirement: *id003
66
+ prerelease: false
69
67
  - !ruby/object:Gem::Dependency
68
+ type: :development
70
69
  name: selenium-webdriver
71
70
  version_requirements: &id004 !ruby/object:Gem::Requirement
72
71
  none: false
@@ -77,9 +76,8 @@ dependencies:
77
76
  segments:
78
77
  - 0
79
78
  version: "0"
80
- prerelease: false
81
- type: :development
82
79
  requirement: *id004
80
+ prerelease: false
83
81
  description: Capybara Page Objects pattern
84
82
  email:
85
83
  - engineering@appfolio.com
@@ -115,7 +113,6 @@ files:
115
113
  - lib/ae_page_objects/util/internal_helpers.rb
116
114
  - lib/ae_page_objects/util/singleton.rb
117
115
  - lib/ae_page_objects/version.rb
118
- - lib/ae_page_objects/window.rb
119
116
  homepage: http://github.com/appfolio/ae_page_objects
120
117
  licenses:
121
118
  - MIT
@@ -1,126 +0,0 @@
1
- module AePageObjects
2
- class Window
3
-
4
- class Registry < Hash
5
- def [](window_or_handle)
6
- if window_or_handle.is_a?(Window)
7
- super(window_or_handle.handle)
8
- else
9
- super(window_or_handle)
10
- end
11
- end
12
-
13
- def add(window)
14
- self[window.handle] = window
15
- end
16
-
17
- def remove(window)
18
- self.delete(window.handle)
19
- end
20
- end
21
-
22
- class HandleManager
23
- def self.all
24
- browser.window_handles
25
- end
26
-
27
- def self.current
28
- # Accessing browser.window_handle tries to find an existing page, which will blow up
29
- # if there isn't one. So... we look at the collection first as a guard.
30
- if all.empty?
31
- nil
32
- else
33
- browser.window_handle
34
- end
35
- end
36
-
37
- def self.switch_to(handle)
38
- browser.switch_to.window(handle)
39
- end
40
-
41
- def self.browser
42
- Capybara.current_session.driver.browser
43
- end
44
-
45
- def self.close(handle)
46
- all_handles_before_close = all()
47
- more_than_one_window = (all_handles_before_close.size > 1)
48
-
49
- # We must protect against closing the last window as doing so will quit the entire browser
50
- # which would mess up subsequent tests.
51
- # http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/WebDriver.html#close()
52
- return false unless more_than_one_window
53
-
54
- current_handle_before_switch = current
55
-
56
- # switch to the window to close
57
- switch_to(handle)
58
-
59
- browser.close
60
-
61
- # need to switch back to something. Use whatever was switched from originally unless we just
62
- # closed that window, in which case just pick something else.
63
- switch_to(current_handle_before_switch == handle ? all.first : current_handle_before_switch)
64
-
65
- true
66
- end
67
- end
68
-
69
- class << self
70
- def registry
71
- @registry ||= Registry.new
72
- end
73
-
74
- def close_all
75
- all.each(&:close)
76
- end
77
-
78
- def all
79
- HandleManager.all.map do |handle|
80
- find(handle)
81
- end
82
- end
83
-
84
- def find(handle)
85
- registry[handle] || create(handle)
86
- end
87
-
88
- def current
89
- current_handle = HandleManager.current
90
-
91
- find(current_handle) if current_handle
92
- end
93
-
94
- def create(handle)
95
- new(registry, handle)
96
- end
97
- end
98
-
99
- attr_reader :current_document, :handle
100
-
101
- def initialize(registry, handle)
102
- @registry = registry
103
- @handle = handle
104
- @current_document = nil
105
-
106
- @registry.add(self)
107
- end
108
-
109
- def current_document=(document)
110
- @current_document.send(:stale!) if @current_document
111
- @current_document = document
112
- end
113
-
114
- def switch_to
115
- HandleManager.switch_to(handle)
116
- current_document
117
- end
118
-
119
- def close
120
- if HandleManager.close(@handle)
121
- self.current_document = nil
122
- @registry.remove(self)
123
- end
124
- end
125
- end
126
- end