browser_shooter 0.3.7 → 0.3.9

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -37,7 +37,8 @@ Repeat these steps in every VM.
37
37
  Create a YAML file like this:
38
38
 
39
39
  # myconfig.yml
40
- output_path: "/tmp/shoots"
40
+ output_path: "~/browser_shooter"
41
+ timeout: 40
41
42
  extensions:
42
43
  - ~/browser_shooter/my_extension_1.rb
43
44
  - ~/browser_shooter/my_extension_2.rb
@@ -87,6 +88,12 @@ Create a YAML file like this:
87
88
 
88
89
  Look in the [examples folder](https://github.com/fguillen/BrowserShooter/tree/master/examples) for more complete examples.
89
90
 
91
+ ##### Root section
92
+
93
+ * **output_path**: Root folder for the _logs_ and _screenshots_. Optional, showing the default value.
94
+ * **timeout**: WebDriver global timeout for all commands. Optional. showing the default value.
95
+ * **extensions**: List of files with _Custom Extended Commands_ implementations. Optional, empty is default. Please check the section _Custom Extended Commands_ for more information.
96
+
90
97
  ##### Tests section
91
98
 
92
99
  ###### WebDriver commands
@@ -20,7 +20,7 @@ module BrowserShooter
20
20
  suite,
21
21
  test,
22
22
  browser,
23
- config["output_path"]
23
+ config
24
24
  )
25
25
  end
26
26
  end
@@ -31,9 +31,9 @@ module BrowserShooter
31
31
  BrowserShooter::Logger.log( "BYE!" )
32
32
  end
33
33
 
34
- def self.run_test( suite, test, browser, output_path )
34
+ def self.run_test( suite, test, browser, config )
35
35
  BrowserShooter::Logger.log( "Executing #{suite.name} | #{test.name} | #{browser.name}", true )
36
- output_path = "#{output_path}/#{suite.name}/#{test.name}/#{browser.name}"
36
+ output_path = "#{config["output_path"]}/#{suite.name}/#{test.name}/#{browser.name}"
37
37
 
38
38
  driver = nil
39
39
 
@@ -45,7 +45,7 @@ module BrowserShooter
45
45
  :desired_capabilities => browser.type.to_sym
46
46
  )
47
47
 
48
- driver.manage.timeouts.implicit_wait = 40
48
+ driver.manage.timeouts.implicit_wait = config["timeout"]
49
49
 
50
50
  logs =
51
51
  BrowserShooter::Commander.script(
@@ -79,7 +79,8 @@ module BrowserShooter
79
79
 
80
80
  def self.load_config( config_file_path )
81
81
  config = {
82
- "output_path" => "~/browser_shooter"
82
+ "output_path" => "~/browser_shooter",
83
+ "timeout" => 40
83
84
  }
84
85
 
85
86
  config.merge! YAML.load_file( config_file_path )
@@ -1,3 +1,3 @@
1
1
  module BrowserShooter
2
- VERSION = "0.3.7"
2
+ VERSION = "0.3.9"
3
3
  end
data/test/base_test.rb CHANGED
@@ -26,10 +26,10 @@ class BaseTest < Test::Unit::TestCase
26
26
  config_mock.stubs( :[] ).returns( "config_value" )
27
27
  config_mock.expects( :suites ).returns( [@suite1] )
28
28
 
29
- BrowserShooter::Base.expects( :run_test ).with( @suite1, @test1, @browser1, "config_value" )
30
- BrowserShooter::Base.expects( :run_test ).with( @suite1, @test1, @browser2, "config_value" )
31
- BrowserShooter::Base.expects( :run_test ).with( @suite1, @test2, @browser1, "config_value" )
32
- BrowserShooter::Base.expects( :run_test ).with( @suite1, @test2, @browser2, "config_value" )
29
+ BrowserShooter::Base.expects( :run_test ).with( @suite1, @test1, @browser1, config_mock )
30
+ BrowserShooter::Base.expects( :run_test ).with( @suite1, @test1, @browser2, config_mock )
31
+ BrowserShooter::Base.expects( :run_test ).with( @suite1, @test2, @browser1, config_mock )
32
+ BrowserShooter::Base.expects( :run_test ).with( @suite1, @test2, @browser2, config_mock )
33
33
 
34
34
  BrowserShooter::Base.new( opts ).run
35
35
  end
@@ -40,12 +40,24 @@ class BaseTest < Test::Unit::TestCase
40
40
  :desired_capabilities => "type1".to_sym
41
41
  }
42
42
 
43
- driver = mock()
44
- driver.expects( :quit )
45
- Selenium::WebDriver.expects( :for ).with( :remote, expected_opts ).returns( driver )
46
- BrowserShooter::Commander.expects( :script ).with( @test1.commands, driver, @browser1, "output_path/suite1/test1/browser1" ).returns( "log1" )
43
+ config = {
44
+ "output_path" => "output_path",
45
+ "timeout" => 66
46
+ }
47
+
48
+ timeouts_mock = mock()
49
+ manage_mock = mock()
50
+ driver_mock = mock()
51
+
52
+ driver_mock.stubs( :manage ).returns( manage_mock )
53
+ manage_mock.stubs( :timeouts ).returns( timeouts_mock )
54
+
55
+ timeouts_mock.expects( :implicit_wait= ).with( 66 )
56
+ driver_mock.expects( :quit )
57
+ Selenium::WebDriver.expects( :for ).with( :remote, expected_opts ).returns( driver_mock )
58
+ BrowserShooter::Commander.expects( :script ).with( @test1.commands, driver_mock, @browser1, "output_path/suite1/test1/browser1" ).returns( "log1" )
47
59
  BrowserShooter::LogExporter.expects( :export ).with( "log1", "output_path/suite1/test1/browser1/logs" )
48
60
 
49
- BrowserShooter::Base.run_test( @suite1, @test1, @browser1, "output_path" )
61
+ BrowserShooter::Base.run_test( @suite1, @test1, @browser1, config )
50
62
  end
51
63
  end
@@ -55,6 +55,13 @@ class ConfiguratorTest < Test::Unit::TestCase
55
55
  suites = BrowserShooter::Configurator.filter_suites( models, opts )
56
56
  assert_equal( 2, suites.size )
57
57
 
58
+ opts = { :suite => "suite1" }
59
+ suites = BrowserShooter::Configurator.filter_suites( models, opts )
60
+ assert_equal( 1, suites.size )
61
+ assert_equal( 2, suites.first.tests.size )
62
+ assert_equal( "google", suites.first.tests.first.name )
63
+ assert_equal( "miniclip", suites.first.tests.last.name )
64
+
58
65
  opts = { :suite => "suite2" }
59
66
  suites = BrowserShooter::Configurator.filter_suites( models, opts )
60
67
  assert_equal( 1, suites.size )
@@ -84,10 +91,20 @@ class ConfiguratorTest < Test::Unit::TestCase
84
91
  config = BrowserShooter::Configurator.load_config( "#{FIXTURES}/config_simple.yml" )
85
92
 
86
93
  assert_equal( "/output_path/timestamp", config["output_path"] )
87
- assert_equal( "script-one", config["scripts"]["script-one"] )
94
+ assert_equal( 20, config["timeout"] )
95
+ assert_equal( "script-one", config["tests"]["script-one"] )
88
96
  assert_equal( "browser-one", config["browsers"]["browser-one"] )
89
97
  end
90
98
 
99
+ def test_load_config_with_defaults
100
+ BrowserShooter::Configurator.expects( :timestamp ).returns( "timestamp" )
101
+
102
+ config = BrowserShooter::Configurator.load_config( "#{FIXTURES}/config_empty.yml" )
103
+
104
+ assert_equal( File.expand_path( "~/browser_shooter/timestamp" ), config["output_path"] )
105
+ assert_equal( 40, config["timeout"] )
106
+ end
107
+
91
108
  def test_load_extensions
92
109
  Kernel.expects( :require ).with( File.expand_path( "extension1.rb" ) )
93
110
  Kernel.expects( :require ).with( File.expand_path( "extension2.rb" ) )
@@ -0,0 +1,3 @@
1
+ tests:
2
+ browsers:
3
+ suites:
@@ -1,13 +1,15 @@
1
1
  output_path: "/output_path"
2
+ timeout: 20
2
3
 
3
- scripts:
4
+ tests:
4
5
  script-one: "script-one"
5
6
  script-two: "script-two"
6
7
 
7
- suites:
8
- suite-one: "suite-one"
9
-
10
8
  browsers:
11
9
  browser-one: "browser-one"
12
10
  browser-two: "browser-two"
13
- browser-three: "browser-three"
11
+ browser-three: "browser-three"
12
+
13
+ suites:
14
+ suite-one: "suite-one"
15
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browser_shooter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.9
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: 2012-03-28 00:00:00.000000000Z
12
+ date: 2012-04-02 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &70241112217880 !ruby/object:Gem::Requirement
16
+ requirement: &70301246657780 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.0.rc.6
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70241112217880
24
+ version_requirements: *70301246657780
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70241112217380 !ruby/object:Gem::Requirement
27
+ requirement: &70301246657280 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.9.2.2
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70241112217380
35
+ version_requirements: *70301246657280
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: mocha
38
- requirement: &70241112217000 !ruby/object:Gem::Requirement
38
+ requirement: &70301246656900 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70241112217000
46
+ version_requirements: *70301246656900
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: selenium-webdriver
49
- requirement: &70241112216540 !ruby/object:Gem::Requirement
49
+ requirement: &70301246656440 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70241112216540
57
+ version_requirements: *70301246656440
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: mixlib-cli
60
- requirement: &70241112216120 !ruby/object:Gem::Requirement
60
+ requirement: &70301246656020 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70241112216120
68
+ version_requirements: *70301246656020
69
69
  description: Selenium RC wraper to create browser screenshots
70
70
  email:
71
71
  - fguillen.mail@gmail.com
@@ -110,6 +110,7 @@ files:
110
110
  - test/commands/screenshots_test.rb
111
111
  - test/configurator_test.rb
112
112
  - test/fixtures/config.yml
113
+ - test/fixtures/config_empty.yml
113
114
  - test/fixtures/config_simple.yml
114
115
  - test/fixtures/logs/log.csv
115
116
  - test/fixtures/screenshot.base64
@@ -151,6 +152,7 @@ test_files:
151
152
  - test/commands/screenshots_test.rb
152
153
  - test/configurator_test.rb
153
154
  - test/fixtures/config.yml
155
+ - test/fixtures/config_empty.yml
154
156
  - test/fixtures/config_simple.yml
155
157
  - test/fixtures/logs/log.csv
156
158
  - test/fixtures/screenshot.base64