conformity 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 03f5bb53373a113a0035f5d41f94d396c70f6e58
4
- data.tar.gz: 880e740b3ba9efd4db77ac939dd5ad72012eca69
3
+ metadata.gz: 7b8455307bec73a30aafcac8703555a260a59683
4
+ data.tar.gz: 740f87bd8c214605fdd86d611d0c24306704a2a0
5
5
  SHA512:
6
- metadata.gz: b053d5f3f3eacc49e888927c696252b88dc9bf65ae1bde18d66290c40aa6d4ccba7d476dfb716dac3dc701ca0cd6da99a79b609704bed0be2454303d6729af8b
7
- data.tar.gz: 208caa041d7abcbfcd5b3b52a6b839a3aae2defb56796fa30b904dd2ccecca5237ddb35b2ff91be8376c5ac508176166128270e8a001e1c9fe81225d11f453f9
6
+ metadata.gz: 6a957db00a62c401b20343edfd5dd308f51fe518c600a4f866aea68ff7a7c7725507b574b2f9fab3c068f46b09231c46cd9bdc6ccf7344d88cea84eab11f7537
7
+ data.tar.gz: 571371f18eb5df39db3f92575ff8b9fe775275967f3b3529432ec9337b0b53602fb65dfe17d21709cedc098eefe0dc73657930cae736182de3a9d446eaafddc5
data/README.md CHANGED
@@ -36,9 +36,9 @@ form.field_names
36
36
  # => [:query]
37
37
 
38
38
  # returns Capybara::Session, can call #html etc. on it
39
- form.fill_with('news') # perform google search for 'news'
40
- form.fill_with('what is the third planet from the sun')
41
- form.fill_with('alternatives to gmail')
39
+ form.fill_with(query: 'news') # perform google search for 'news'
40
+ form.fill_with(query: 'what is the third planet from the sun')
41
+ form.fill_with(query: 'alternatives to gmail')
42
42
 
43
43
  # check if the last form submission succeeded (if success conditions were set)
44
44
  form.success?
@@ -14,6 +14,49 @@ module Conformity
14
14
  fields.value(name)
15
15
  end
16
16
 
17
+ def click_on(locator, options={})
18
+ session.find(locator, options).click
19
+ screenshot(name) if Conformity.log_screenshots
20
+ end
21
+ alias_method :click_link_or_button, :click_on
22
+ alias_method :click_link, :click_on
23
+ alias_method :click_button, :click_on
24
+
25
+ def fill_in(locator, options={})
26
+ raise "Must pass a hash containing 'with'" if not options.is_a?(Hash) or not options.has_key?(:with)
27
+ with = options.delete(:with)
28
+ fill_options = options.delete(:fill_options)
29
+ session.find(locator, options).set(with, fill_options)
30
+ screenshot(:fill_in) if Conformity.log_screenshots
31
+ end
32
+
33
+ def choose(locator, options={})
34
+ session.find(locator, options).set(true)
35
+ screenshot(:choose) if Conformity.log_screenshots
36
+ end
37
+
38
+ def check(locator, options={})
39
+ session.find(locator, options).set(true)
40
+ screenshot(:check) if Conformity.log_screenshots
41
+ end
42
+
43
+ def uncheck(locator, options={})
44
+ session.find(locator, options).set(false)
45
+ screenshot(:uncheck) if Conformity.log_screenshots
46
+ end
47
+
48
+ def select(value, options={})
49
+ options.delete(:from)
50
+ session.find(value, options).select_option
51
+ screenshot(:select) if Conformity.log_screenshots
52
+ end
53
+
54
+ def unselect(value, options={})
55
+ options.delete(:from)
56
+ session.find(value, options).unselect_option
57
+ screenshot(:unselect) if Conformity.log_screenshots
58
+ end
59
+
17
60
  def method_missing(name, *args, &block)
18
61
  if ACTIONS.include?(name)
19
62
  session.send(name, *args, &block)
@@ -25,11 +68,6 @@ module Conformity
25
68
  end
26
69
  end
27
70
 
28
- # so Kernel#select isn't called
29
- def select(*args, &block)
30
- session.send(:select, *args, &block)
31
- end
32
-
33
71
  def screenshot(name)
34
72
  file_name = "#{Time.now.to_i}_#{name}.png"
35
73
  full_path = Conformity.screenshots_folder + "/" + file_name
@@ -16,16 +16,20 @@ module Conformity
16
16
  fields.map { |field| field.name }
17
17
  end
18
18
 
19
- def set_values(values)
20
- fields.each_with_index { |field, i| field.value = values[i] }
19
+ def find(name)
20
+ fields.select { |field| field.name == name }.first
21
21
  end
22
22
 
23
23
  def value(name)
24
24
  find(name).value
25
25
  end
26
26
 
27
- def find(name)
28
- fields.select { |field| field.name == name }.first
27
+ def set(name, value)
28
+ find(name).value = value
29
+ end
30
+
31
+ def set_all(hash)
32
+ hash.each { |name, value| set(name, value) }
29
33
  end
30
34
  end
31
35
  end
@@ -42,8 +42,8 @@ module Conformity
42
42
  Capybara.page
43
43
  end
44
44
 
45
- def fill_with(*field_values)
46
- fields_container.set_values(field_values)
45
+ def fill_with(field_hash)
46
+ fields_container.set_all(field_hash)
47
47
  fill
48
48
  end
49
49
 
@@ -1,3 +1,3 @@
1
1
  module Conformity
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
data/spec/actions_spec.rb CHANGED
@@ -19,26 +19,18 @@ describe Conformity::Actions do
19
19
  end
20
20
 
21
21
  describe "#method_missing" do
22
- it "delegates action calls to session" do
22
+ it "delegates visit to session" do
23
23
  expect(@session).to receive(:visit).with("/")
24
24
  @actions.visit('/')
25
25
  end
26
26
 
27
- it "ignores success conditions" do
28
- expect { @actions.has_status_code?; @actions.has_content? }.to_not raise_error
27
+ it "delegates find to session" do
28
+ expect(@session).to receive(:find).with("#id")
29
+ @actions.find("#id")
29
30
  end
30
- end
31
31
 
32
- describe "#select" do
33
- it "is called on session" do
34
- expect(@session).to receive(:select)
35
- @actions.select('Yes')
36
- end
37
-
38
- it "is not called on Kernel" do
39
- skip "not sure how to test"
40
- expect(Kernel).to_not receive(:select)
41
- @actions.select('Yes')
32
+ it "ignores success conditions" do
33
+ expect { @actions.has_status_code?; @actions.has_content? }.to_not raise_error
42
34
  end
43
35
  end
44
36
 
data/spec/fields_spec.rb CHANGED
@@ -40,16 +40,26 @@ describe Conformity::Fields do
40
40
  end
41
41
  end
42
42
 
43
- describe "#set_values" do
44
- it "sets the value of fields" do
45
- field_a = double()
46
- field_b = double()
43
+ describe "#set" do
44
+ it "sets the value of field name" do
45
+ field = double("Field", name: "number")
46
+ @fields.add_field(field)
47
+ expect(field).to receive(:value=).with("867-5309")
48
+ @fields.set("number", "867-5309")
49
+ end
50
+ end
51
+
52
+ describe "#set_all" do
53
+ it "sets the value of all fields" do
54
+ name = double("Field", name: "name")
55
+ number = double("Field", name: "number")
56
+ @fields.add_field(name)
57
+ @fields.add_field(number)
47
58
 
48
- allow(@fields).to receive(:fields) { [field_a, field_b] }
49
- expect(field_a).to receive(:value=).with('1')
50
- expect(field_b).to receive(:value=).with('2')
59
+ expect(name).to receive(:value=).with("Jenny")
60
+ expect(number).to receive(:value=).with("867-5309")
51
61
 
52
- @fields.set_values(['1', '2'])
62
+ @fields.set_all("name" => "Jenny", "number" => "867-5309")
53
63
  end
54
64
  end
55
65
  end
data/spec/form_spec.rb CHANGED
@@ -48,7 +48,7 @@ describe Form do
48
48
  click_on 'submit'
49
49
  end
50
50
 
51
- expect { form.fill_with('Jane Doe') }.to raise_error(FillError)
51
+ expect { form.fill_with(name: 'Jane Doe') }.to raise_error(FillError)
52
52
  end
53
53
  end
54
54
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conformity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikias Kalpaxis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-10 00:00:00.000000000 Z
11
+ date: 2014-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara