Module: Webs::WebsTestHelper

Defined in:
lib/test/webs_test_helper.rb

Instance Method Summary collapse

Instance Method Details

#assert_difference(executable, how_many = 1, &block) ⇒ Object



66
67
68
69
70
71
# File 'lib/test/webs_test_helper.rb', line 66

def assert_difference(executable, how_many = 1, &block)
  before = eval(executable)
  yield
  after = eval(executable)
  after.should == before + how_many
end

#assert_no_difference(executable, &block) ⇒ Object



73
74
75
76
77
78
# File 'lib/test/webs_test_helper.rb', line 73

def assert_no_difference(executable, &block)
  before = eval(executable)
  yield
  after = eval(executable)
  after.should == before
end

#fw_param_permuter(options = {}, &block) ⇒ Object

Permute: is_admin, permission_level, tier, social & premium fw_param_permuter( :only=>[:fw_sig_is_admin, :fw_sig_social, :fw_sig_permission_level] ) fw_param_permuter( :except=>[:fw_sig_tier, :fw_sig_premium]} ) fw_param_permuter( :vals=>{:test=>[‘a’, ‘b’, ‘c’] )



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/test/webs_test_helper.rb', line 29

def fw_param_permuter options={}, &block
  param_vals = {
    :fw_sig_is_admin=>[0,1],
    :fw_sig_permission_level=>Webs::PermissionLevel::VALUES,
    :fw_sig_social=>[0,1],
    :fw_sig_premium=>[0,1],
    :fw_sig_tier=>[0,1,2,3]
  }

  if (only = options.delete(:only))
    param_vals.keys.each { |k| param_vals.delete(k) if !only.include?(k)}
  end
  if (except = options.delete(:except))
    param_vals.keys.each { |k| param_vals.delete(k) if except.include?(k)}
  end
  
  if (vals = options.delete(:vals))
    param_vals.merge!( vals ) 
  end

  params = fw_test_params( options ) 
  permute_params params, param_vals, block
end

#fw_sitebuilder_test_params(options = {}) ⇒ Object



15
16
17
# File 'lib/test/webs_test_helper.rb', line 15

def fw_sitebuilder_test_params options={}
  fw_test_params options.merge( :fw_sig_is_admin=>'1' )
end

#fw_test_params(options = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
# File 'lib/test/webs_test_helper.rb', line 3

def fw_test_params options={}
  { :fw_sig_site=>rand(100000),
    :fw_sig_is_admin=>'0',
    :fw_sig_permission_level=>Webs::PermissionLevel[:anyone],
    :fw_sig_tier=>'0',
    :fw_sig_url=>'localhost:3000',
    :fw_sig_user=>rand(100000),
    :fw_sig_social=>'1', 
    :fw_sig_premium=>'0',
    :fw_sig_width=>800 }.merge( options )
end

#fw_test_scenarios(options = {}) ⇒ Object



19
20
21
22
23
# File 'lib/test/webs_test_helper.rb', line 19

def fw_test_scenarios options={}
  scenarios = []
  fw_param_permuter( options ){ |params| scenarios << params }
  scenarios
end

#permute_params(params, h_vals, block) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/test/webs_test_helper.rb', line 53

def permute_params params, h_vals, block
  if h_vals.size == 0
    block.call( params.clone )
  else
    k = h_vals.keys.first
    vals = h_vals.delete(k)
    vals.each do |v|
      params[k] = v.to_s
      permute_params params, h_vals.clone, block
    end
  end
end