ab-experiments-rails 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +26 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.md +92 -0
  5. data/Rakefile +34 -0
  6. data/ab_experiments_rails.gemspec +23 -0
  7. data/app/views/ab_experiments_rails/_example.html.erb +17 -0
  8. data/app/views/ab_experiments_rails/_header_content.html.erb +52 -0
  9. data/lib/ab_experiments_rails.rb +6 -0
  10. data/lib/ab_experiments_rails/settings.rb +35 -0
  11. data/lib/ab_experiments_rails/version.rb +3 -0
  12. data/lib/generators/ab_experiments_rails_generator.rb +9 -0
  13. data/lib/tasks/ab_experiments_rails_tasks.rake +4 -0
  14. data/test/ab_experiments_rails_test.rb +7 -0
  15. data/test/dummy/README.rdoc +28 -0
  16. data/test/dummy/Rakefile +6 -0
  17. data/test/dummy/app/assets/javascripts/application.js +14 -0
  18. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  19. data/test/dummy/app/controllers/application_controller.rb +5 -0
  20. data/test/dummy/app/controllers/pages_controller.rb +4 -0
  21. data/test/dummy/app/helpers/application_helper.rb +2 -0
  22. data/test/dummy/app/views/ab_experiments_rails/_header_content.html.erb +52 -0
  23. data/test/dummy/app/views/layouts/application.html.erb +17 -0
  24. data/test/dummy/app/views/pages/landing_page.html.erb +23 -0
  25. data/test/dummy/bin/bundle +3 -0
  26. data/test/dummy/bin/rails +4 -0
  27. data/test/dummy/bin/rake +4 -0
  28. data/test/dummy/bin/setup +29 -0
  29. data/test/dummy/config.ru +4 -0
  30. data/test/dummy/config/application.rb +26 -0
  31. data/test/dummy/config/boot.rb +5 -0
  32. data/test/dummy/config/database.yml +25 -0
  33. data/test/dummy/config/environment.rb +5 -0
  34. data/test/dummy/config/environments/development.rb +41 -0
  35. data/test/dummy/config/environments/production.rb +79 -0
  36. data/test/dummy/config/environments/test.rb +42 -0
  37. data/test/dummy/config/initializers/assets.rb +11 -0
  38. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  39. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  40. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  41. data/test/dummy/config/initializers/inflections.rb +16 -0
  42. data/test/dummy/config/initializers/mime_types.rb +4 -0
  43. data/test/dummy/config/initializers/session_store.rb +3 -0
  44. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  45. data/test/dummy/config/locales/en.yml +23 -0
  46. data/test/dummy/config/routes.rb +57 -0
  47. data/test/dummy/config/secrets.yml +22 -0
  48. data/test/dummy/db/development.sqlite3 +0 -0
  49. data/test/dummy/db/schema.rb +16 -0
  50. data/test/dummy/db/test.sqlite3 +0 -0
  51. data/test/dummy/public/404.html +67 -0
  52. data/test/dummy/public/422.html +67 -0
  53. data/test/dummy/public/500.html +66 -0
  54. data/test/dummy/public/favicon.ico +0 -0
  55. data/test/dummy/public/js_mocks/cx_api_mock.js +7 -0
  56. data/test/dummy/public/js_mocks/cx_api_mock_variant.js +7 -0
  57. data/test/landing_page_test.rb +52 -0
  58. data/test/test_helper.rb +29 -0
  59. metadata +189 -0
@@ -0,0 +1,22 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key is used for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rake secret` to generate a secure secret key.
9
+
10
+ # Make sure the secrets in this file are kept private
11
+ # if you're sharing your code publicly.
12
+
13
+ development:
14
+ secret_key_base: 5516fe5ceabf8a6196eb3e2a418eedc9f5ffd51963cc6f24a18a821335d4834351c9f414a96c0c388f26b5a5a571a5c5835f986c9936e507085156bdf4c125cc
15
+
16
+ test:
17
+ secret_key_base: 37bd345862f0c24420918be077aeea0e0500ae0afa44243eae3b2308f31b0cccb9d8e205dfb83782fab4f6fb610d4709eb156201ebab60b09aac895b7db9caa3
18
+
19
+ # Do not keep production secrets in the repository,
20
+ # instead read values from the environment.
21
+ production:
22
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
@@ -0,0 +1,16 @@
1
+ # encoding: UTF-8
2
+ # This file is auto-generated from the current state of the database. Instead
3
+ # of editing this file, please use the migrations feature of Active Record to
4
+ # incrementally modify your database, and then regenerate this schema definition.
5
+ #
6
+ # Note that this schema.rb definition is the authoritative source for your
7
+ # database schema. If you need to create the application database on another
8
+ # system, you should be using db:schema:load, not running all the migrations
9
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
11
+ #
12
+ # It's strongly recommended that you check this file into your version control system.
13
+
14
+ ActiveRecord::Schema.define(version: 0) do
15
+
16
+ end
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,7 @@
1
+ function CxApiMock() {
2
+ this.chooseVariation = chooseVariation;
3
+ function chooseVariation() {
4
+ return 0;
5
+ }
6
+ }
7
+ window.cxApi = new CxApiMock();
@@ -0,0 +1,7 @@
1
+ function CxApiMock() {
2
+ this.chooseVariation = chooseVariation;
3
+ function chooseVariation() {
4
+ return 1;
5
+ }
6
+ }
7
+ window.cxApi = new CxApiMock();
@@ -0,0 +1,52 @@
1
+ require "test_helper"
2
+
3
+ feature "Landing page" do
4
+
5
+ scenario "has content" do
6
+ visit '/pages/landing_page'
7
+ page.must_have_content "Welcome and buy our services"
8
+ assert_equal true, page.has_no_content?("for half prices")
9
+ end
10
+
11
+ scenario "force display original" do
12
+ visit '/pages/landing_page?landing_page_test_ab=0'
13
+ page.must_have_content "Welcome and buy our services"
14
+ assert_equal true, page.has_no_content?("for half prices")
15
+ end
16
+
17
+ scenario "force display variant" do
18
+ visit '/pages/landing_page?landing_page_test_ab=1'
19
+ page.must_have_content "Welcome and buy our services for half prices"
20
+ end
21
+
22
+ scenario "display original - mocked javascript api" do
23
+ AbExperimentsRails::Settings.any_instance.stubs(:url).returns('/js_mocks/cx_api_mock.js')
24
+ visit '/pages/landing_page'
25
+ page.must_have_content "Welcome and buy our services"
26
+ assert_equal true, page.has_no_content?("for half prices")
27
+ end
28
+
29
+ scenario "display variant - mocked javascript api" do
30
+ AbExperimentsRails::Settings.any_instance.stubs(:url).returns('/js_mocks/cx_api_mock_variant.js')
31
+ visit '/pages/landing_page'
32
+ page.must_have_content "Welcome and buy our services for half prices"
33
+ end
34
+
35
+ scenario "display original later" do
36
+ AbExperimentsRails::Settings.any_instance.stubs(:show_delay).returns(3) # 3 seconds
37
+ visit '/pages/landing_page?landing_page_test_ab=0'
38
+ sleep 1
39
+ assert_equal true, page.has_no_content?("Welcome and buy our services")
40
+ sleep 5
41
+ assert_equal true, page.has_content?("Welcome and buy our services")
42
+ end
43
+
44
+ scenario "disable experiment" do
45
+ visit '/pages/landing_page?landing_page_test_ab=1'
46
+ page.must_have_content "Welcome and buy our services for half prices"
47
+ AbExperimentsRails::Settings.any_instance.stubs(:experiment_enabled).returns(false)
48
+ visit '/pages/landing_page?landing_page_test_ab=1'
49
+ sleep 1
50
+ assert_equal true, page.has_no_content?("Welcome and buy our services for half prices")
51
+ end
52
+ end
@@ -0,0 +1,29 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
5
+ ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
6
+ require "rails/test_help"
7
+ require "minitest/rails/capybara"
8
+
9
+ # Filter out Minitest backtrace while allowing backtrace from other libraries
10
+ # to be shown.
11
+ Minitest.backtrace_filter = Minitest::BacktraceFilter.new
12
+
13
+ # Load support files
14
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
15
+
16
+ # Load fixtures from the engine
17
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
18
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
19
+ ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
20
+ ActiveSupport::TestCase.fixtures :all
21
+ end
22
+
23
+ Capybara.register_driver :selenium do |app|
24
+ Capybara::Selenium::Driver.new(app, :browser => :firefox)
25
+ end
26
+ Capybara.default_driver = :selenium
27
+
28
+ require 'minitest/unit'
29
+ require 'mocha/mini_test'
metadata ADDED
@@ -0,0 +1,189 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ab-experiments-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ondrej Mudroncik
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-01-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.2.7.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.2.7.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: The ab-experiments-rails is wrap for google ab experiments. Work with
56
+ partials instead of javascript fighting.
57
+ email:
58
+ - gems@hlidacky.cz
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - Gemfile
64
+ - MIT-LICENSE
65
+ - README.md
66
+ - Rakefile
67
+ - ab_experiments_rails.gemspec
68
+ - app/views/ab_experiments_rails/_example.html.erb
69
+ - app/views/ab_experiments_rails/_header_content.html.erb
70
+ - lib/ab_experiments_rails.rb
71
+ - lib/ab_experiments_rails/settings.rb
72
+ - lib/ab_experiments_rails/version.rb
73
+ - lib/generators/ab_experiments_rails_generator.rb
74
+ - lib/tasks/ab_experiments_rails_tasks.rake
75
+ - test/ab_experiments_rails_test.rb
76
+ - test/dummy/README.rdoc
77
+ - test/dummy/Rakefile
78
+ - test/dummy/app/assets/javascripts/application.js
79
+ - test/dummy/app/assets/stylesheets/application.css
80
+ - test/dummy/app/controllers/application_controller.rb
81
+ - test/dummy/app/controllers/pages_controller.rb
82
+ - test/dummy/app/helpers/application_helper.rb
83
+ - test/dummy/app/views/ab_experiments_rails/_header_content.html.erb
84
+ - test/dummy/app/views/layouts/application.html.erb
85
+ - test/dummy/app/views/pages/landing_page.html.erb
86
+ - test/dummy/bin/bundle
87
+ - test/dummy/bin/rails
88
+ - test/dummy/bin/rake
89
+ - test/dummy/bin/setup
90
+ - test/dummy/config.ru
91
+ - test/dummy/config/application.rb
92
+ - test/dummy/config/boot.rb
93
+ - test/dummy/config/database.yml
94
+ - test/dummy/config/environment.rb
95
+ - test/dummy/config/environments/development.rb
96
+ - test/dummy/config/environments/production.rb
97
+ - test/dummy/config/environments/test.rb
98
+ - test/dummy/config/initializers/assets.rb
99
+ - test/dummy/config/initializers/backtrace_silencers.rb
100
+ - test/dummy/config/initializers/cookies_serializer.rb
101
+ - test/dummy/config/initializers/filter_parameter_logging.rb
102
+ - test/dummy/config/initializers/inflections.rb
103
+ - test/dummy/config/initializers/mime_types.rb
104
+ - test/dummy/config/initializers/session_store.rb
105
+ - test/dummy/config/initializers/wrap_parameters.rb
106
+ - test/dummy/config/locales/en.yml
107
+ - test/dummy/config/routes.rb
108
+ - test/dummy/config/secrets.yml
109
+ - test/dummy/db/development.sqlite3
110
+ - test/dummy/db/schema.rb
111
+ - test/dummy/db/test.sqlite3
112
+ - test/dummy/public/404.html
113
+ - test/dummy/public/422.html
114
+ - test/dummy/public/500.html
115
+ - test/dummy/public/favicon.ico
116
+ - test/dummy/public/js_mocks/cx_api_mock.js
117
+ - test/dummy/public/js_mocks/cx_api_mock_variant.js
118
+ - test/landing_page_test.rb
119
+ - test/test_helper.rb
120
+ homepage: https://github.com/hlidacky/ab-experiments-rails
121
+ licenses:
122
+ - MIT
123
+ metadata: {}
124
+ post_install_message:
125
+ rdoc_options: []
126
+ require_paths:
127
+ - lib
128
+ required_ruby_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ required_rubygems_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ requirements: []
139
+ rubyforge_project:
140
+ rubygems_version: 2.6.8
141
+ signing_key:
142
+ specification_version: 4
143
+ summary: Google ab experiments wrap
144
+ test_files:
145
+ - test/ab_experiments_rails_test.rb
146
+ - test/dummy/app/assets/javascripts/application.js
147
+ - test/dummy/app/assets/stylesheets/application.css
148
+ - test/dummy/app/controllers/application_controller.rb
149
+ - test/dummy/app/controllers/pages_controller.rb
150
+ - test/dummy/app/helpers/application_helper.rb
151
+ - test/dummy/app/views/ab_experiments_rails/_header_content.html.erb
152
+ - test/dummy/app/views/layouts/application.html.erb
153
+ - test/dummy/app/views/pages/landing_page.html.erb
154
+ - test/dummy/bin/bundle
155
+ - test/dummy/bin/rails
156
+ - test/dummy/bin/rake
157
+ - test/dummy/bin/setup
158
+ - test/dummy/config/application.rb
159
+ - test/dummy/config/boot.rb
160
+ - test/dummy/config/database.yml
161
+ - test/dummy/config/environment.rb
162
+ - test/dummy/config/environments/development.rb
163
+ - test/dummy/config/environments/production.rb
164
+ - test/dummy/config/environments/test.rb
165
+ - test/dummy/config/initializers/assets.rb
166
+ - test/dummy/config/initializers/backtrace_silencers.rb
167
+ - test/dummy/config/initializers/cookies_serializer.rb
168
+ - test/dummy/config/initializers/filter_parameter_logging.rb
169
+ - test/dummy/config/initializers/inflections.rb
170
+ - test/dummy/config/initializers/mime_types.rb
171
+ - test/dummy/config/initializers/session_store.rb
172
+ - test/dummy/config/initializers/wrap_parameters.rb
173
+ - test/dummy/config/locales/en.yml
174
+ - test/dummy/config/routes.rb
175
+ - test/dummy/config/secrets.yml
176
+ - test/dummy/config.ru
177
+ - test/dummy/db/development.sqlite3
178
+ - test/dummy/db/schema.rb
179
+ - test/dummy/db/test.sqlite3
180
+ - test/dummy/public/404.html
181
+ - test/dummy/public/422.html
182
+ - test/dummy/public/500.html
183
+ - test/dummy/public/favicon.ico
184
+ - test/dummy/public/js_mocks/cx_api_mock.js
185
+ - test/dummy/public/js_mocks/cx_api_mock_variant.js
186
+ - test/dummy/Rakefile
187
+ - test/dummy/README.rdoc
188
+ - test/landing_page_test.rb
189
+ - test/test_helper.rb