diff --git a/manifests/hub.pp b/manifests/hub.pp new file mode 100644 index 0000000..4ee791e --- /dev/null +++ b/manifests/hub.pp @@ -0,0 +1,33 @@ +# == Class: selenium::hub +# +# simple template +# +# +# === Examples +# +# include selenium::hub +# +# +# === Authors +# +# Joshua Hoblitt +# +# +class selenium::hub( + $options = $selenium::params::hub_options, +) inherits selenium::params { + validate_string($options) + + include selenium + + anchor { 'selenium::hub::begin': } + Class[ 'selenium' ] -> + selenium::config{ 'hub': + user => $selenium::user, + group => $selenium::group, + install_root => $selenium::install_root, + options => $options, + java => $selenium::java, + } -> + anchor { 'selenium::hub::end': } +} diff --git a/spec/classes/selenium_hub_spec.rb b/spec/classes/selenium_hub_spec.rb new file mode 100644 index 0000000..eda7177 --- /dev/null +++ b/spec/classes/selenium_hub_spec.rb @@ -0,0 +1,46 @@ +require 'spec_helper' + +describe 'selenium::hub', :type => :class do + + shared_examples 'hub' do |params| + p = { + :options => '-role hub' + } + + p.merge!(params) if params + + it do + should include_class('selenium') + should contain_selenium__config('hub').with({ + 'options' => p[:options], + }) + should contain_class('selenium::hub') + end + end + + context 'for osfamily RedHat' do + let(:facts) {{ :osfamily => 'RedHat' }} + + context 'no params' do + it_behaves_like 'hub', {} + end + + context 'options => -foo' do + p = { :options => '-foo' } + let(:params) { p } + + it_behaves_like 'hub', p + end + + context 'options => []' do + let(:params) {{ :options => [] }} + + it 'should fail' do + expect { + should contain_class('selenium::hub') + }.to raise_error + end + end + end + +end diff --git a/spec/defines/selenium_config_spec.rb b/spec/defines/selenium_config_spec.rb index 658c518..1a77435 100644 --- a/spec/defines/selenium_config_spec.rb +++ b/spec/defines/selenium_config_spec.rb @@ -1,8 +1,6 @@ require 'spec_helper' describe 'selenium::config', :type => :define do - let(:title) { 'server' } - shared_examples 'config' do |params| let :pre_condition do "include selenium" @@ -47,23 +45,50 @@ context 'for osfamily RedHat' do let(:facts) {{ :osfamily => 'RedHat' }} - context 'no params' do - it_behaves_like 'config', {} + context "server" do + let(:title) { 'server' } + + context 'no params' do + it_behaves_like 'config', {} + end + + context 'all params' do + params = { + :display => 'X:0', + :user => 'Xselenium', + :install_root => 'X/opt/selenium', + :jar_name => 'Xselenium-server-standalone-2.35.0.jar', + :options => 'X-Dwebdriver.enable.native.events=1', + :java => 'Xjava', + } + + let(:params) { params } + + it_behaves_like 'config', params + end end - context 'all params' do - params = { - :display => 'X:0', - :user => 'Xselenium', - :install_root => 'X/opt/selenium', - :jar_name => 'Xselenium-server-standalone-2.35.0.jar', - :options => 'X-Dwebdriver.enable.native.events=1', - :java => 'Xjava', - } + context "hub" do + let(:title) { 'hub' } + + context 'no params' do + it_behaves_like 'config', {} + end + + context 'all params' do + params = { + :display => 'X:0', + :user => 'Xselenium', + :install_root => 'X/opt/selenium', + :jar_name => 'Xselenium-server-standalone-2.35.0.jar', + :options => 'X-Dwebdriver.enable.native.events=1', + :java => 'Xjava', + } - let(:params) { params } + let(:params) { params } - it_behaves_like 'config', params + it_behaves_like 'config', params + end end end