watirmark 5.29.2 → 5.29.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/watirmark/controller/actions.rb +1 -2
- data/lib/watirmark/controller/controller.rb +4 -9
- data/lib/watirmark/extensions/ruby_extensions.rb +7 -0
- data/lib/watirmark/models/factory.rb +2 -10
- data/lib/watirmark/version.rb +1 -1
- data/spec/controller_actions_spec.rb +0 -56
- data/spec/model_factory_spec.rb +4 -18
- data/spec/open_struct_spec.rb +27 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e0a29b86dfedffc425b759146a17e4e131b19c47
|
4
|
+
data.tar.gz: 70c357b0cadb675104ec1bdc982a81340e05bd05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4e21b4bd41ecc14958cda3f64a1a686da4b2d3206086b6465da3c01873e9250f474a82098ac6020f094d5c020b1a7a4051e1da4e1b299de0eca16d16d2b8160
|
7
|
+
data.tar.gz: eb0dc66a6e7ef0764e3d29fe705277918977118bdb6bd953123e2ad419155d38d9d97d7a1dc42b57cdc518ce6a30324fe700d8c1d554e814d3f23593b1aa70f7
|
@@ -38,14 +38,14 @@ module Watirmark
|
|
38
38
|
initialize_model(data)
|
39
39
|
end
|
40
40
|
|
41
|
-
def populate_data
|
42
|
-
submit_process_page(@last_process_page.underscored_name) {submit} if populate_values
|
41
|
+
def populate_data
|
42
|
+
submit_process_page(@last_process_page.underscored_name) {submit} if populate_values
|
43
43
|
end
|
44
44
|
|
45
|
-
def populate_values
|
45
|
+
def populate_values
|
46
46
|
@seen_value = false
|
47
47
|
@last_process_page = nil
|
48
|
-
|
48
|
+
keyed_elements.each do |k|
|
49
49
|
next unless k.populate_allowed?
|
50
50
|
submit_process_page_when_page_changes(k)
|
51
51
|
before_process_page(k)
|
@@ -159,11 +159,6 @@ module Watirmark
|
|
159
159
|
@view.keyed_elements.select{|e| !value(e).nil?}
|
160
160
|
end
|
161
161
|
|
162
|
-
def keyed_update_elements(updates)
|
163
|
-
Watirmark.logger.info("Editing these keyword(s) in populate_data: #{updates}") unless updates.nil? || updates.empty?
|
164
|
-
keyed_elements.select{|k| updates.nil? || updates.include?(k.keyword) }
|
165
|
-
end
|
166
|
-
|
167
162
|
def locate_model(supermodel)
|
168
163
|
case supermodel
|
169
164
|
when Hash
|
@@ -118,6 +118,13 @@ class ModelOpenStruct < OpenStruct
|
|
118
118
|
h
|
119
119
|
end
|
120
120
|
|
121
|
+
def includes? hash
|
122
|
+
raise "#{hash.inspect} is not a Hash" unless hash.is_a?(Hash)
|
123
|
+
h = self.to_h
|
124
|
+
hash.each_pair { |key, value| return false unless h[key] == value }
|
125
|
+
true
|
126
|
+
end
|
127
|
+
|
121
128
|
# Stub these out so it doesn't find anything
|
122
129
|
def find(model)
|
123
130
|
end
|
@@ -15,7 +15,7 @@ module Watirmark
|
|
15
15
|
include FactoryMethodGenerators
|
16
16
|
|
17
17
|
attr_accessor :defaults, :model_name, :models, :parent, :children, :model_type
|
18
|
-
attr_reader :keywords
|
18
|
+
attr_reader :keywords
|
19
19
|
|
20
20
|
def marshal_dump
|
21
21
|
[@keywords, @model_name, @models, @parent, @children, @model_type, self.to_h]
|
@@ -107,19 +107,11 @@ module Watirmark
|
|
107
107
|
# Update the model using the provided hash
|
108
108
|
def update hash
|
109
109
|
remove_empty_entries hash
|
110
|
-
hash.each_pair
|
111
|
-
@updates << key
|
112
|
-
send "#{key}=", value
|
113
|
-
end
|
110
|
+
hash.each_pair { |key, value| send "#{key}=", value }
|
114
111
|
self
|
115
112
|
end
|
116
113
|
alias :has :update
|
117
114
|
|
118
|
-
def clear_updates
|
119
|
-
@updates = []
|
120
|
-
end
|
121
|
-
|
122
|
-
|
123
115
|
# Update the model using the provided hash but only if exists (TODO: may not be needed any more)
|
124
116
|
def update_existing_members hash
|
125
117
|
remove_empty_entries hash
|
data/lib/watirmark/version.rb
CHANGED
@@ -151,60 +151,4 @@ describe Watirmark::Actions do
|
|
151
151
|
it 'should not throw an exception if populate_data is overridden' do
|
152
152
|
lambda { ControllerActionsTest::ActionCreateControllerWithOverride.new.create }.should_not raise_error
|
153
153
|
end
|
154
|
-
|
155
|
-
describe 'Controllers will only populate newly updated values in the model' do
|
156
|
-
|
157
|
-
before(:all) do
|
158
|
-
class TestEditView < Page
|
159
|
-
keyword(:edit_test) {}
|
160
|
-
keyword(:edit_test_two) {}
|
161
|
-
def create(model); end
|
162
|
-
def edit(model); end
|
163
|
-
end
|
164
|
-
class TestEditController < Watirmark::WebPage::Controller
|
165
|
-
@view = TestEditView
|
166
|
-
def populate_edit_test; end
|
167
|
-
def populate_edit_test_two; end
|
168
|
-
end
|
169
|
-
class TestEditModel < Watirmark::Model::Factory
|
170
|
-
keywords :edit_test
|
171
|
-
defaults do
|
172
|
-
edit_test { true }
|
173
|
-
end
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
specify 'populate_data populates keywords that have not been populated before' do
|
178
|
-
model = TestEditModel.new
|
179
|
-
c = TestEditController.new(model)
|
180
|
-
model.update(edit_test: true)
|
181
|
-
c.expects(:populate_edit_test).once
|
182
|
-
c.run :edit
|
183
|
-
c.run :edit
|
184
|
-
c.run :edit
|
185
|
-
model.update(edit_test_two: true)
|
186
|
-
c.expects(:populate_edit_test_two).once
|
187
|
-
c.run :edit
|
188
|
-
c.run :edit
|
189
|
-
c.run :edit
|
190
|
-
end
|
191
|
-
|
192
|
-
specify 'create should populate every time regardless of model updates' do
|
193
|
-
model = TestEditModel.new
|
194
|
-
c = TestEditController.new(model)
|
195
|
-
c.expects(:populate_edit_test).twice
|
196
|
-
c.run :create
|
197
|
-
c.run :create
|
198
|
-
end
|
199
|
-
|
200
|
-
specify 'create should populate every time even when the model is updated' do
|
201
|
-
model = TestEditModel.new
|
202
|
-
c = TestEditController.new(model)
|
203
|
-
c.expects(:populate_edit_test).twice
|
204
|
-
c.run :create
|
205
|
-
model.update(edit_test_two: true)
|
206
|
-
c.expects(:populate_edit_test_two).once
|
207
|
-
c.run :create
|
208
|
-
end
|
209
|
-
end
|
210
154
|
end
|
data/spec/model_factory_spec.rb
CHANGED
@@ -99,20 +99,6 @@ describe "#update" do
|
|
99
99
|
lambda{keys.update(' '.to_sym=>'') }.should_not raise_error
|
100
100
|
end
|
101
101
|
|
102
|
-
specify "model #updates hash is updated when any keywords in the model is updated" do
|
103
|
-
keys = FactoryTest::UpdateModel.new
|
104
|
-
keys.update(:username=>'username', :foo=>'foo')
|
105
|
-
expect(keys.updates).to include(:username)
|
106
|
-
expect(keys.updates).to include(:foo)
|
107
|
-
end
|
108
|
-
|
109
|
-
specify "model #updates hash is cleared when #clear_updates is called" do
|
110
|
-
keys = FactoryTest::UpdateModel.new
|
111
|
-
keys.update(:username=>'username', :foo=>'foo')
|
112
|
-
keys.clear_updates
|
113
|
-
expect(keys.updates).to be_empty
|
114
|
-
end
|
115
|
-
|
116
102
|
end
|
117
103
|
|
118
104
|
describe "defaults" do
|
@@ -503,7 +489,7 @@ end
|
|
503
489
|
describe "keywords" do
|
504
490
|
before :all do
|
505
491
|
module FactoryTest
|
506
|
-
class
|
492
|
+
class Element
|
507
493
|
attr_accessor :value
|
508
494
|
|
509
495
|
def initialize(x)
|
@@ -512,9 +498,9 @@ describe "keywords" do
|
|
512
498
|
end
|
513
499
|
|
514
500
|
class SomeView < Page
|
515
|
-
keyword(:first_name) {
|
516
|
-
keyword(:middle_name) {
|
517
|
-
keyword(:last_name) {
|
501
|
+
keyword(:first_name) { Element.new :a }
|
502
|
+
keyword(:middle_name) { Element.new :b }
|
503
|
+
keyword(:last_name) { Element.new :c }
|
518
504
|
end
|
519
505
|
|
520
506
|
class SomeModel < Watirmark::Model::Factory
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative 'spec_helper'
|
2
|
+
|
3
|
+
describe "ModelOpenStruct includes?" do
|
4
|
+
before :all do
|
5
|
+
@struct = ModelOpenStruct.new(a: 1, b: 2, c: 'three')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'open struct includes hash' do
|
9
|
+
@struct.includes?(a: 1, c: 'three').should == true
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'open struct does not include hash' do
|
13
|
+
@struct.includes?(d: 1).should == false
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'single element hash' do
|
17
|
+
@struct.includes?(a: 1).should == true
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'return true if hash is nil' do
|
21
|
+
expect { @struct.includes?(nil) }.should raise_error
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'throw error if hash is not passed' do
|
25
|
+
expect { @struct.includes?(Object.new) }.should raise_error
|
26
|
+
end
|
27
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: watirmark
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.29.
|
4
|
+
version: 5.29.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hugh McGowan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: watir-webdriver
|
@@ -205,6 +205,7 @@ files:
|
|
205
205
|
- spec/helper_methods_spec.rb
|
206
206
|
- spec/model_factory_spec.rb
|
207
207
|
- spec/model_traits_spec.rb
|
208
|
+
- spec/open_struct_spec.rb
|
208
209
|
- spec/page_spec.rb
|
209
210
|
- spec/process_page_spec.rb
|
210
211
|
- spec/session_spec.rb
|
@@ -232,13 +233,14 @@ rubyforge_project:
|
|
232
233
|
rubygems_version: 2.4.8
|
233
234
|
signing_key:
|
234
235
|
specification_version: 4
|
235
|
-
summary: watirmark 5.29.
|
236
|
+
summary: watirmark 5.29.3
|
236
237
|
test_files:
|
237
238
|
- spec/model_traits_spec.rb
|
238
239
|
- spec/session_spec.rb
|
239
240
|
- spec/controller_spec.rb
|
240
241
|
- spec/controllers_and_models_spec.rb
|
241
242
|
- spec/model_factory_spec.rb
|
243
|
+
- spec/open_struct_spec.rb
|
242
244
|
- spec/helper_methods_spec.rb
|
243
245
|
- spec/controller_actions_spec.rb
|
244
246
|
- spec/watir_webdriver_spec.rb
|