goggles 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -17,3 +17,4 @@ spec/reports
17
17
  test/tmp
18
18
  test/version_tmp
19
19
  tmp
20
+ empty_config.yml
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
1
  # goggles
2
+ [![Gem Version](https://badge.fury.io/rb/goggles.png)](http://badge.fury.io/rb/goggles)
2
3
 
3
4
  Goggles is a visual testing tool inspired by [wraith](http://github.com/bbc-news/wraith) and powered by [watir-webdriver](http://github.com/watir/watir-webdriver). It allows you to compare screenshots of your web application in different browsers, and you can execute Ruby scripts to setup as many screenshots as you need.
4
5
 
@@ -23,27 +24,30 @@ Or install it yourself with:
23
24
 
24
25
  ## Usage
25
26
 
26
- Create a config file to point goggles in the right direction.
27
+ Generate a config file with `swim --init` to point goggles in the right direction.
28
+
29
+ $ swim -i /home/configs/config.yaml
30
+
27
31
  ``` yaml
28
32
  # config.yaml
29
33
  # Directory where you want to store your results. Required.
30
- results_directory: "/home/results"
34
+ results_directory: "/home/example/results"
31
35
 
32
36
  # Directory where you're storing your scripts. Optional.
33
- scripts_directory: "/home/scripts"
37
+ scripts_directory: "/home/example/scripts"
34
38
 
35
39
  # Scripts to execute in the scripts directory. Optional.
36
40
  scripts_to_execute:
37
- - "search.rb"
38
- - "login.rb"
41
+ - "first_script.rb"
42
+ - "second_script.rb"
39
43
 
40
44
  # Domain to test. Required.
41
- domain_under_test: "http://www.manta.com"
45
+ domain_under_test: "http://www.google.com"
42
46
 
43
47
  # Paths to pages you want to test. Label them with a page name. Required.
44
48
  paths_to_capture:
45
49
  home: "/"
46
- search: "/mb"
50
+ gmail: "/gmail"
47
51
 
48
52
  # Browsers you want to compare. Cannot specify more than two (yet). Required.
49
53
  browsers:
@@ -53,14 +57,12 @@ browsers:
53
57
  # Widths at which you would like screenshots compared. All screenshots will be taken at a height of 768. Required.
54
58
  browser_widths:
55
59
  - 1024
56
- - 600
57
- - 320
58
60
 
59
61
  # Fuzzing percentage. Play around with this to find the right fit. Required.
60
62
  image_fuzzing: "20%"
61
63
  ```
62
64
 
63
- If you pass scripts to goggles as part of your testing, you **must** specify when screenshots should be taken with the `#grab_screenshot` method. Otherwise, goggles will open each of your paths and take a screenshot.
65
+ If you pass scripts to goggles as part of your testing, you **must** specify when screenshots should be taken with the `#grab_screenshot` method. If you do not specify scripts in configuration, goggles will open each of your paths and take a screenshot.
64
66
 
65
67
  NOTE: I've tried to keep variable names as unlikely to interrupt your code as possible, but `@watir` is reserved for the browser instance currently executing scripts.
66
68
 
@@ -81,6 +83,12 @@ Execute a goggles test through the command line with `swim --config CONFIG_FILE`
81
83
 
82
84
  1. Fork it ( http://github.com/jdenen/goggles/fork )
83
85
  2. Create your feature branch (`git checkout -b my-new-feature`)
84
- 3. Commit your changes (`git commit -am 'Add some feature'`)
85
- 4. Push to the branch (`git push origin my-new-feature`)
86
- 5. Create new Pull Request
86
+ 3. Code until specs pass (`rspec`)*
87
+ 4. Commit your changes (`git commit -am 'Add some feature'`)
88
+ 5. Push to the branch (`git push origin my-new-feature`)
89
+ 6. Create new Pull Request
90
+
91
+ \*Chrome and [ChromeDriver](http://code.google.com/p/selenium/wiki/ChromeDriver) are required to pass specs. Download the latest version and add it to your PATH before running `rspec`.
92
+
93
+ ## Questions, Comments, Concerns
94
+ Easiest place to reach me is Twitter, [@jpdenen](http://twitter.com/jpdenen)
@@ -1,5 +1,6 @@
1
1
  require 'goggles'
2
2
  require 'optparse'
3
+ require 'pathname'
3
4
 
4
5
  module Goggles
5
6
  class CLI
@@ -14,6 +15,16 @@ module Goggles
14
15
  run_conf(config)
15
16
  end
16
17
 
18
+ opts.on("-i", "--init CONFIG_FILE", "create empty config file") do |config|
19
+ file = Pathname.new(config)
20
+
21
+ if file.exist?
22
+ puts "Configuration file already exists: #{Pathname.new(config).realpath}"
23
+ else
24
+ File.open(file, 'w+') { |f| f.write(YAML::dump(EMPTY_CONFIG)) }
25
+ end
26
+ end
27
+
17
28
  opts.on("-v", "--version", "Goggles::VERSION") do
18
29
  puts Goggles::VERSION
19
30
  end
@@ -34,5 +45,15 @@ module Goggles
34
45
  end
35
46
  end
36
47
 
48
+ EMPTY_CONFIG = {
49
+ 'results_directory' => "/home/example/results",
50
+ 'scripts_directory' => "/home/example/scripts",
51
+ 'scripts_to_execute' => ["first_example.rb", "second_example.rb"],
52
+ 'domain_under_test' => "http://www.google.com",
53
+ 'paths_to_capture' => { 'home' => "/", 'gmail' => "/gmail" },
54
+ 'browsers' => ["chrome", "firefox"],
55
+ 'browser_widths' => [1024, 600],
56
+ 'image_fuzzing' => "20%"
57
+ }
37
58
  end
38
59
  end
@@ -1,3 +1,3 @@
1
1
  module Goggles
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -31,4 +31,11 @@ describe Goggles do
31
31
  end
32
32
  end
33
33
 
34
+ describe "creating empty configuration with --init" do
35
+ Given(:conf) { "spec/support/configs/empty_config.yml" }
36
+ Given { FileUtils.rm_f conf }
37
+ When { `swim -i #{conf}` }
38
+ Then { File.exists?(conf).should be_true }
39
+ end
40
+
34
41
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: goggles
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-20 00:00:00.000000000 Z
12
+ date: 2014-01-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler