Godwin
10 years ago
12 changed files with 5568 additions and 3779 deletions
@ -1,436 +1,429 @@ |
|||
GIT |
|||
remote: git://github.com/josevalim/rails-footnotes.git |
|||
revision: 087914beabb56c2e9979f63eeb0183591065dde3 |
|||
specs: |
|||
rails-footnotes (4.0.2) |
|||
rails (>= 3.2) |
|||
|
|||
GIT |
|||
remote: git://github.com/svenfuchs/i18n-active_record.git |
|||
revision: 2d9a22b6a4e5d809782cdbfa65b14d9e47aa27fc |
|||
specs: |
|||
i18n-active_record (0.0.2) |
|||
i18n (>= 0.5.0) |
|||
|
|||
GEM |
|||
remote: http://rubygems.org/ |
|||
specs: |
|||
actionmailer (4.0.0) |
|||
actionpack (= 4.0.0) |
|||
mail (~> 2.5.3) |
|||
actionpack (4.0.0) |
|||
activesupport (= 4.0.0) |
|||
builder (~> 3.1.0) |
|||
erubis (~> 2.7.0) |
|||
rack (~> 1.5.2) |
|||
rack-test (~> 0.6.2) |
|||
activemodel (4.0.0) |
|||
activesupport (= 4.0.0) |
|||
builder (~> 3.1.0) |
|||
activerecord (4.0.0) |
|||
activemodel (= 4.0.0) |
|||
activerecord-deprecated_finders (~> 1.0.2) |
|||
activesupport (= 4.0.0) |
|||
arel (~> 4.0.0) |
|||
activerecord-deprecated_finders (1.0.3) |
|||
activerecord-session_store (0.1.0) |
|||
actionpack (>= 4.0.0, < 5) |
|||
activerecord (>= 4.0.0, < 5) |
|||
railties (>= 4.0.0, < 5) |
|||
activesupport (4.0.0) |
|||
i18n (~> 0.6, >= 0.6.4) |
|||
minitest (~> 4.2) |
|||
multi_json (~> 1.3) |
|||
thread_safe (~> 0.1) |
|||
tzinfo (~> 0.3.37) |
|||
acts_as_list (0.4.0) |
|||
activerecord (>= 3.0) |
|||
addressable (2.3.6) |
|||
arel (4.0.2) |
|||
attr_required (1.0.0) |
|||
awesome_print (1.2.0) |
|||
bcrypt (3.1.7) |
|||
bcrypt (3.1.7-x86-mingw32) |
|||
better_errors (1.1.0) |
|||
coderay (>= 1.0.0) |
|||
erubis (>= 2.6.6) |
|||
binding_of_caller (0.7.2) |
|||
debug_inspector (>= 0.0.1) |
|||
builder (3.1.4) |
|||
callsite (0.0.11) |
|||
capistrano (2.15.5) |
|||
highline |
|||
net-scp (>= 1.0.0) |
|||
net-sftp (>= 2.0.0) |
|||
net-ssh (>= 2.0.14) |
|||
net-ssh-gateway (>= 1.1.0) |
|||
capybara (2.4.1) |
|||
mime-types (>= 1.16) |
|||
nokogiri (>= 1.3.3) |
|||
rack (>= 1.0.0) |
|||
rack-test (>= 0.5.4) |
|||
xpath (~> 2.0) |
|||
carmen (1.0.1) |
|||
unicode_utils (~> 1.4.0) |
|||
carmen-rails (1.0.1) |
|||
carmen (~> 1.0.0) |
|||
rails |
|||
carrierwave (0.10.0) |
|||
activemodel (>= 3.2.0) |
|||
activesupport (>= 3.2.0) |
|||
json (>= 1.7) |
|||
mime-types (>= 1.16) |
|||
carrierwave-imageoptimizer (1.2.1) |
|||
carrierwave (~> 0.8) |
|||
image_optimizer (~> 1.2) |
|||
celluloid (0.15.2) |
|||
timers (~> 1.1.0) |
|||
childprocess (0.5.3) |
|||
ffi (~> 1.0, >= 1.0.11) |
|||
chunky_png (1.3.1) |
|||
cliver (0.3.2) |
|||
coderay (1.1.0) |
|||
coffee-rails (4.0.1) |
|||
coffee-script (>= 2.2.0) |
|||
railties (>= 4.0.0, < 5.0) |
|||
coffee-script (2.3.0) |
|||
coffee-script-source |
|||
execjs |
|||
coffee-script-source (1.7.1) |
|||
compass (0.12.7) |
|||
chunky_png (~> 1.2) |
|||
fssm (>= 0.2.7) |
|||
sass (~> 3.2.19) |
|||
compass-rails (1.1.7) |
|||
compass (>= 0.12.2) |
|||
sprockets (<= 2.11.0) |
|||
coveralls (0.7.0) |
|||
multi_json (~> 1.3) |
|||
rest-client |
|||
simplecov (>= 0.7) |
|||
term-ansicolor |
|||
thor |
|||
crack (0.4.2) |
|||
safe_yaml (~> 1.0.0) |
|||
cucumber (1.3.15) |
|||
builder (>= 2.1.2) |
|||
diff-lcs (>= 1.1.3) |
|||
gherkin (~> 2.12) |
|||
multi_json (>= 1.7.5, < 2.0) |
|||
multi_test (>= 0.1.1) |
|||
cucumber-rails (1.4.1) |
|||
capybara (>= 1.1.2, < 3) |
|||
cucumber (>= 1.3.8, < 2) |
|||
mime-types (~> 1.16) |
|||
nokogiri (~> 1.5) |
|||
rails (>= 3, < 5) |
|||
database_cleaner (1.3.0) |
|||
debug_inspector (0.0.2) |
|||
diff-lcs (1.2.5) |
|||
docile (1.1.5) |
|||
erubis (2.7.0) |
|||
execjs (2.2.1) |
|||
factory_girl (4.4.0) |
|||
activesupport (>= 3.0.0) |
|||
factory_girl_rails (4.4.1) |
|||
factory_girl (~> 4.4.0) |
|||
railties (>= 3.0.0) |
|||
faraday (0.9.0) |
|||
multipart-post (>= 1.2, < 3) |
|||
ffi (1.9.3) |
|||
ffi (1.9.3-x86-mingw32) |
|||
font-awesome-rails (4.1.0.0) |
|||
railties (>= 3.2, < 5.0) |
|||
forgery (0.6.0) |
|||
formatador (0.2.5) |
|||
foundation-rails (5.3.1.0) |
|||
railties (>= 3.1.0) |
|||
sass (>= 3.2.0) |
|||
fssm (0.2.10) |
|||
geocoder (1.2.3) |
|||
gherkin (2.12.2) |
|||
multi_json (~> 1.3) |
|||
gherkin (2.12.2-x86-mingw32) |
|||
multi_json (~> 1.3) |
|||
guard (2.6.1) |
|||
formatador (>= 0.2.4) |
|||
listen (~> 2.7) |
|||
lumberjack (~> 1.0) |
|||
pry (>= 0.9.12) |
|||
thor (>= 0.18.1) |
|||
guard-rspec (4.2.10) |
|||
guard (~> 2.1) |
|||
rspec (>= 2.14, < 4.0) |
|||
haml (4.0.5) |
|||
tilt |
|||
haml-rails (0.5.1) |
|||
actionpack (~> 4.0.0) |
|||
activesupport (~> 4.0.0) |
|||
haml (>= 3.1, < 5.0) |
|||
railties (~> 4.0.0) |
|||
highline (1.6.21) |
|||
hike (1.2.3) |
|||
httpauth (0.2.1) |
|||
i18n (0.6.11) |
|||
image_optimizer (1.2.1) |
|||
jquery-rails (3.1.1) |
|||
railties (>= 3.0, < 5.0) |
|||
thor (>= 0.14, < 2.0) |
|||
jquery-ui-rails (5.0.0) |
|||
railties (>= 3.2.16) |
|||
json (1.8.1) |
|||
jwt (0.1.13) |
|||
multi_json (>= 1.5) |
|||
kgio (2.9.2) |
|||
launchy (2.4.2) |
|||
addressable (~> 2.3) |
|||
listen (2.7.9) |
|||
celluloid (>= 0.15.2) |
|||
rb-fsevent (>= 0.9.3) |
|||
rb-inotify (>= 0.9) |
|||
lumberjack (1.0.9) |
|||
mail (2.5.4) |
|||
mime-types (~> 1.16) |
|||
treetop (~> 1.4.8) |
|||
meta_request (0.3.3) |
|||
callsite (~> 0.0, >= 0.0.11) |
|||
rack-contrib (~> 1.1) |
|||
railties (>= 3.0.0, < 5.0.0) |
|||
method_source (0.8.2) |
|||
mime-types (1.25.1) |
|||
mini_magick (3.7.0) |
|||
subexec (~> 0.2.1) |
|||
mini_portile (0.6.0) |
|||
minitest (4.7.5) |
|||
multi_json (1.10.1) |
|||
multi_test (0.1.1) |
|||
multipart-post (2.0.0) |
|||
nested_form (0.3.2) |
|||
net-scp (1.2.1) |
|||
net-ssh (>= 2.6.5) |
|||
net-sftp (2.1.2) |
|||
net-ssh (>= 2.6.5) |
|||
net-ssh (2.9.1) |
|||
net-ssh-gateway (1.2.0) |
|||
net-ssh (>= 2.6.5) |
|||
netrc (0.7.7) |
|||
nokogiri (1.6.2.1) |
|||
mini_portile (= 0.6.0) |
|||
nokogiri (1.6.2.1-x86-mingw32) |
|||
mini_portile (= 0.6.0) |
|||
oauth (0.4.7) |
|||
oauth2 (0.8.1) |
|||
faraday (~> 0.8) |
|||
httpauth (~> 0.1) |
|||
jwt (~> 0.1.4) |
|||
multi_json (~> 1.0) |
|||
rack (~> 1.2) |
|||
paper_trail (3.0.5) |
|||
activerecord (>= 3.0, < 5.0) |
|||
activesupport (>= 3.0, < 5.0) |
|||
paypal-express (0.5.5) |
|||
activesupport (>= 2.3) |
|||
attr_required (>= 0.0.5) |
|||
restclient_with_cert |
|||
pg (0.17.1) |
|||
pg (0.17.1-x86-mingw32) |
|||
poltergeist (1.5.1) |
|||
capybara (~> 2.1) |
|||
cliver (~> 0.3.1) |
|||
multi_json (~> 1.0) |
|||
websocket-driver (>= 0.2.0) |
|||
polyglot (0.3.5) |
|||
pry (0.10.0) |
|||
coderay (~> 1.1.0) |
|||
method_source (~> 0.8.1) |
|||
slop (~> 3.4) |
|||
pry (0.10.0-x86-mingw32) |
|||
coderay (~> 1.1.0) |
|||
method_source (~> 0.8.1) |
|||
slop (~> 3.4) |
|||
win32console (~> 1.3) |
|||
rack (1.5.2) |
|||
rack-contrib (1.1.0) |
|||
rack (>= 0.9.1) |
|||
rack-test (0.6.2) |
|||
rack (>= 1.0) |
|||
rails (4.0.0) |
|||
actionmailer (= 4.0.0) |
|||
actionpack (= 4.0.0) |
|||
activerecord (= 4.0.0) |
|||
activesupport (= 4.0.0) |
|||
bundler (>= 1.3.0, < 2.0) |
|||
railties (= 4.0.0) |
|||
sprockets-rails (~> 2.0.0) |
|||
rails-assets-cdn (0.1.0) |
|||
rails |
|||
rails_12factor (0.0.2) |
|||
rails_serve_static_assets |
|||
rails_stdout_logging |
|||
rails_serve_static_assets (0.0.2) |
|||
rails_stdout_logging (0.0.3) |
|||
railties (4.0.0) |
|||
actionpack (= 4.0.0) |
|||
activesupport (= 4.0.0) |
|||
rake (>= 0.8.7) |
|||
thor (>= 0.18.1, < 2.0) |
|||
raindrops (0.13.0) |
|||
rake (10.3.2) |
|||
rb-fsevent (0.9.4) |
|||
rb-inotify (0.9.5) |
|||
ffi (>= 0.5.0) |
|||
rest-client (1.7.2) |
|||
mime-types (>= 1.16, < 3.0) |
|||
netrc (~> 0.7) |
|||
rest-client (1.7.2-x86-mingw32) |
|||
ffi (~> 1.9) |
|||
mime-types (>= 1.16, < 3.0) |
|||
netrc (~> 0.7) |
|||
restclient_with_cert (0.0.8) |
|||
rest-client (>= 1.6) |
|||
rspec (3.0.0) |
|||
rspec-core (~> 3.0.0) |
|||
rspec-expectations (~> 3.0.0) |
|||
rspec-mocks (~> 3.0.0) |
|||
rspec-core (3.0.2) |
|||
rspec-support (~> 3.0.0) |
|||
rspec-expectations (3.0.2) |
|||
diff-lcs (>= 1.2.0, < 2.0) |
|||
rspec-support (~> 3.0.0) |
|||
rspec-mocks (3.0.2) |
|||
rspec-support (~> 3.0.0) |
|||
rspec-rails (3.0.1) |
|||
actionpack (>= 3.0) |
|||
activesupport (>= 3.0) |
|||
railties (>= 3.0) |
|||
rspec-core (~> 3.0.0) |
|||
rspec-expectations (~> 3.0.0) |
|||
rspec-mocks (~> 3.0.0) |
|||
rspec-support (~> 3.0.0) |
|||
rspec-support (3.0.2) |
|||
rubyzip (1.1.6) |
|||
rvm-capistrano (1.5.3) |
|||
capistrano (~> 2.15.4) |
|||
safe_yaml (1.0.3) |
|||
sass (3.2.19) |
|||
sass-rails (4.0.3) |
|||
railties (>= 4.0.0, < 5.0) |
|||
sass (~> 3.2.0) |
|||
sprockets (~> 2.8, <= 2.11.0) |
|||
sprockets-rails (~> 2.0) |
|||
selenium-webdriver (2.42.0) |
|||
childprocess (>= 0.5.0) |
|||
multi_json (~> 1.0) |
|||
rubyzip (~> 1.0) |
|||
websocket (~> 1.0.4) |
|||
simplecov (0.9.0) |
|||
docile (~> 1.1.0) |
|||
multi_json |
|||
simplecov-html (~> 0.8.0) |
|||
simplecov-html (0.8.0) |
|||
sitemap_generator (5.0.4) |
|||
builder |
|||
slop (3.6.0) |
|||
sorcery (0.8.6) |
|||
bcrypt (~> 3.1) |
|||
oauth (~> 0.4, >= 0.4.4) |
|||
oauth2 (>= 0.8.0, < 1.0.0) |
|||
sprockets (2.11.0) |
|||
hike (~> 1.2) |
|||
multi_json (~> 1.0) |
|||
rack (~> 1.0) |
|||
tilt (~> 1.1, != 1.3.0) |
|||
sprockets-rails (2.0.1) |
|||
actionpack (>= 3.0) |
|||
activesupport (>= 3.0) |
|||
sprockets (~> 2.8) |
|||
subexec (0.2.3) |
|||
term-ansicolor (1.3.0) |
|||
tins (~> 1.0) |
|||
thor (0.19.1) |
|||
thread_safe (0.3.4) |
|||
tilt (1.4.1) |
|||
timers (1.1.0) |
|||
tins (1.3.0) |
|||
treetop (1.4.15) |
|||
polyglot |
|||
polyglot (>= 0.3.1) |
|||
tzinfo (0.3.40) |
|||
uglifier (2.5.3) |
|||
execjs (>= 0.3.0) |
|||
json (>= 1.8.0) |
|||
unicode_utils (1.4.0) |
|||
unicorn (4.8.3) |
|||
kgio (~> 2.6) |
|||
rack |
|||
raindrops (~> 0.7) |
|||
wdm (0.1.0) |
|||
webmock (1.18.0) |
|||
addressable (>= 2.3.6) |
|||
crack (>= 0.3.2) |
|||
websocket (1.0.7) |
|||
websocket-driver (0.3.4) |
|||
win32console (1.3.2-x86-mingw32) |
|||
wysiwyg-rails (1.1.6) |
|||
font-awesome-rails (= 4.1.0.0) |
|||
railties (>= 3.2, < 5.0) |
|||
xpath (2.0.0) |
|||
nokogiri (~> 1.3) |
|||
|
|||
PLATFORMS |
|||
ruby |
|||
x86-mingw32 |
|||
|
|||
DEPENDENCIES |
|||
activerecord-session_store |
|||
acts_as_list |
|||
awesome_print |
|||
better_errors |
|||
binding_of_caller |
|||
capistrano |
|||
capybara |
|||
carmen-rails |
|||
carrierwave |
|||
carrierwave-imageoptimizer |
|||
coffee-rails (~> 4.0.0) |
|||
compass-rails (~> 1.1.3) |
|||
coveralls |
|||
cucumber-rails |
|||
database_cleaner |
|||
factory_girl_rails |
|||
font-awesome-rails |
|||
forgery |
|||
foundation-rails |
|||
geocoder |
|||
guard-rspec |
|||
haml |
|||
haml-rails |
|||
i18n-active_record! |
|||
jquery-rails |
|||
jquery-ui-rails |
|||
launchy |
|||
meta_request |
|||
mini_magick |
|||
nested_form |
|||
oauth2 (~> 0.8.0) |
|||
paper_trail (~> 3.0.5) |
|||
paypal-express |
|||
pg |
|||
poltergeist |
|||
rails (= 4.0.0) |
|||
rails-assets-cdn |
|||
rails-footnotes! |
|||
rails_12factor |
|||
rspec |
|||
rspec-rails |
|||
rvm-capistrano |
|||
sass-rails (~> 4.0.0) |
|||
selenium-webdriver |
|||
simplecov |
|||
sitemap_generator |
|||
sorcery (>= 0.8.1) |
|||
uglifier (>= 1.3.0) |
|||
unicorn |
|||
wdm (>= 0.1.0) |
|||
webmock |
|||
wysiwyg-rails |
|||
GIT |
|||
remote: git://github.com/josevalim/rails-footnotes.git |
|||
revision: 087914beabb56c2e9979f63eeb0183591065dde3 |
|||
specs: |
|||
rails-footnotes (4.0.2) |
|||
rails (>= 3.2) |
|||
|
|||
GIT |
|||
remote: git://github.com/svenfuchs/i18n-active_record.git |
|||
revision: 2d9a22b6a4e5d809782cdbfa65b14d9e47aa27fc |
|||
specs: |
|||
i18n-active_record (0.0.2) |
|||
i18n (>= 0.5.0) |
|||
|
|||
GEM |
|||
remote: http://rubygems.org/ |
|||
specs: |
|||
actionmailer (4.0.0) |
|||
actionpack (= 4.0.0) |
|||
mail (~> 2.5.3) |
|||
actionpack (4.0.0) |
|||
activesupport (= 4.0.0) |
|||
builder (~> 3.1.0) |
|||
erubis (~> 2.7.0) |
|||
rack (~> 1.5.2) |
|||
rack-test (~> 0.6.2) |
|||
activemodel (4.0.0) |
|||
activesupport (= 4.0.0) |
|||
builder (~> 3.1.0) |
|||
activerecord (4.0.0) |
|||
activemodel (= 4.0.0) |
|||
activerecord-deprecated_finders (~> 1.0.2) |
|||
activesupport (= 4.0.0) |
|||
arel (~> 4.0.0) |
|||
activerecord-deprecated_finders (1.0.3) |
|||
activerecord-session_store (0.1.0) |
|||
actionpack (>= 4.0.0, < 5) |
|||
activerecord (>= 4.0.0, < 5) |
|||
railties (>= 4.0.0, < 5) |
|||
activesupport (4.0.0) |
|||
i18n (~> 0.6, >= 0.6.4) |
|||
minitest (~> 4.2) |
|||
multi_json (~> 1.3) |
|||
thread_safe (~> 0.1) |
|||
tzinfo (~> 0.3.37) |
|||
acts_as_list (0.4.0) |
|||
activerecord (>= 3.0) |
|||
addressable (2.3.6) |
|||
arel (4.0.2) |
|||
attr_required (1.0.0) |
|||
awesome_print (1.2.0) |
|||
bcrypt (3.1.7) |
|||
bcrypt (3.1.7-x86-mingw32) |
|||
better_errors (1.1.0) |
|||
coderay (>= 1.0.0) |
|||
erubis (>= 2.6.6) |
|||
binding_of_caller (0.7.2) |
|||
debug_inspector (>= 0.0.1) |
|||
builder (3.1.4) |
|||
callsite (0.0.11) |
|||
capistrano (2.15.5) |
|||
highline |
|||
net-scp (>= 1.0.0) |
|||
net-sftp (>= 2.0.0) |
|||
net-ssh (>= 2.0.14) |
|||
net-ssh-gateway (>= 1.1.0) |
|||
capybara (2.4.1) |
|||
mime-types (>= 1.16) |
|||
nokogiri (>= 1.3.3) |
|||
rack (>= 1.0.0) |
|||
rack-test (>= 0.5.4) |
|||
xpath (~> 2.0) |
|||
carmen (1.0.1) |
|||
unicode_utils (~> 1.4.0) |
|||
carmen-rails (1.0.1) |
|||
carmen (~> 1.0.0) |
|||
rails |
|||
carrierwave (0.10.0) |
|||
activemodel (>= 3.2.0) |
|||
activesupport (>= 3.2.0) |
|||
json (>= 1.7) |
|||
mime-types (>= 1.16) |
|||
carrierwave-imageoptimizer (1.2.1) |
|||
carrierwave (~> 0.8) |
|||
image_optimizer (~> 1.2) |
|||
celluloid (0.15.2) |
|||
timers (~> 1.1.0) |
|||
childprocess (0.5.3) |
|||
ffi (~> 1.0, >= 1.0.11) |
|||
chunky_png (1.3.1) |
|||
cliver (0.3.2) |
|||
coderay (1.1.0) |
|||
coffee-rails (4.0.1) |
|||
coffee-script (>= 2.2.0) |
|||
railties (>= 4.0.0, < 5.0) |
|||
coffee-script (2.3.0) |
|||
coffee-script-source |
|||
execjs |
|||
coffee-script-source (1.7.1) |
|||
compass (0.12.7) |
|||
chunky_png (~> 1.2) |
|||
fssm (>= 0.2.7) |
|||
sass (~> 3.2.19) |
|||
compass-rails (1.1.7) |
|||
compass (>= 0.12.2) |
|||
sprockets (<= 2.11.0) |
|||
coveralls (0.7.0) |
|||
multi_json (~> 1.3) |
|||
rest-client |
|||
simplecov (>= 0.7) |
|||
term-ansicolor |
|||
thor |
|||
crack (0.4.2) |
|||
safe_yaml (~> 1.0.0) |
|||
cucumber (1.3.15) |
|||
builder (>= 2.1.2) |
|||
diff-lcs (>= 1.1.3) |
|||
gherkin (~> 2.12) |
|||
multi_json (>= 1.7.5, < 2.0) |
|||
multi_test (>= 0.1.1) |
|||
cucumber-rails (1.4.1) |
|||
capybara (>= 1.1.2, < 3) |
|||
cucumber (>= 1.3.8, < 2) |
|||
mime-types (~> 1.16) |
|||
nokogiri (~> 1.5) |
|||
rails (>= 3, < 5) |
|||
database_cleaner (1.3.0) |
|||
debug_inspector (0.0.2) |
|||
diff-lcs (1.2.5) |
|||
docile (1.1.5) |
|||
erubis (2.7.0) |
|||
execjs (2.2.1) |
|||
factory_girl (4.4.0) |
|||
activesupport (>= 3.0.0) |
|||
factory_girl_rails (4.4.1) |
|||
factory_girl (~> 4.4.0) |
|||
railties (>= 3.0.0) |
|||
faraday (0.9.0) |
|||
multipart-post (>= 1.2, < 3) |
|||
ffi (1.9.3) |
|||
ffi (1.9.3-x86-mingw32) |
|||
font-awesome-rails (4.1.0.0) |
|||
railties (>= 3.2, < 5.0) |
|||
forgery (0.6.0) |
|||
formatador (0.2.5) |
|||
foundation-rails (5.3.1.0) |
|||
railties (>= 3.1.0) |
|||
sass (>= 3.2.0) |
|||
fssm (0.2.10) |
|||
geocoder (1.2.3) |
|||
gherkin (2.12.2) |
|||
multi_json (~> 1.3) |
|||
gherkin (2.12.2-x86-mingw32) |
|||
multi_json (~> 1.3) |
|||
guard (2.6.1) |
|||
formatador (>= 0.2.4) |
|||
listen (~> 2.7) |
|||
lumberjack (~> 1.0) |
|||
pry (>= 0.9.12) |
|||
thor (>= 0.18.1) |
|||
guard-rspec (4.2.10) |
|||
guard (~> 2.1) |
|||
rspec (>= 2.14, < 4.0) |
|||
haml (4.0.5) |
|||
tilt |
|||
haml-rails (0.5.1) |
|||
actionpack (~> 4.0.0) |
|||
activesupport (~> 4.0.0) |
|||
haml (>= 3.1, < 5.0) |
|||
railties (~> 4.0.0) |
|||
highline (1.6.21) |
|||
hike (1.2.3) |
|||
httpauth (0.2.1) |
|||
i18n (0.6.11) |
|||
image_optimizer (1.2.1) |
|||
jquery-rails (3.1.1) |
|||
railties (>= 3.0, < 5.0) |
|||
thor (>= 0.14, < 2.0) |
|||
jquery-ui-rails (5.0.0) |
|||
railties (>= 3.2.16) |
|||
json (1.8.1) |
|||
jwt (0.1.13) |
|||
multi_json (>= 1.5) |
|||
launchy (2.4.2) |
|||
addressable (~> 2.3) |
|||
listen (2.7.9) |
|||
celluloid (>= 0.15.2) |
|||
rb-fsevent (>= 0.9.3) |
|||
rb-inotify (>= 0.9) |
|||
lumberjack (1.0.9) |
|||
mail (2.5.4) |
|||
mime-types (~> 1.16) |
|||
treetop (~> 1.4.8) |
|||
meta_request (0.3.3) |
|||
callsite (~> 0.0, >= 0.0.11) |
|||
rack-contrib (~> 1.1) |
|||
railties (>= 3.0.0, < 5.0.0) |
|||
method_source (0.8.2) |
|||
mime-types (1.25.1) |
|||
mini_magick (3.7.0) |
|||
subexec (~> 0.2.1) |
|||
mini_portile (0.6.0) |
|||
minitest (4.7.5) |
|||
multi_json (1.10.1) |
|||
multi_test (0.1.1) |
|||
multipart-post (2.0.0) |
|||
nested_form (0.3.2) |
|||
net-scp (1.2.1) |
|||
net-ssh (>= 2.6.5) |
|||
net-sftp (2.1.2) |
|||
net-ssh (>= 2.6.5) |
|||
net-ssh (2.9.1) |
|||
net-ssh-gateway (1.2.0) |
|||
net-ssh (>= 2.6.5) |
|||
netrc (0.7.7) |
|||
nokogiri (1.6.2.1) |
|||
mini_portile (= 0.6.0) |
|||
nokogiri (1.6.2.1-x86-mingw32) |
|||
mini_portile (= 0.6.0) |
|||
oauth (0.4.7) |
|||
oauth2 (0.8.1) |
|||
faraday (~> 0.8) |
|||
httpauth (~> 0.1) |
|||
jwt (~> 0.1.4) |
|||
multi_json (~> 1.0) |
|||
rack (~> 1.2) |
|||
paper_trail (3.0.5) |
|||
activerecord (>= 3.0, < 5.0) |
|||
activesupport (>= 3.0, < 5.0) |
|||
paypal-express (0.5.5) |
|||
activesupport (>= 2.3) |
|||
attr_required (>= 0.0.5) |
|||
restclient_with_cert |
|||
pg (0.17.1) |
|||
pg (0.17.1-x86-mingw32) |
|||
poltergeist (1.5.1) |
|||
capybara (~> 2.1) |
|||
cliver (~> 0.3.1) |
|||
multi_json (~> 1.0) |
|||
websocket-driver (>= 0.2.0) |
|||
polyglot (0.3.5) |
|||
pry (0.10.0) |
|||
coderay (~> 1.1.0) |
|||
method_source (~> 0.8.1) |
|||
slop (~> 3.4) |
|||
pry (0.10.0-x86-mingw32) |
|||
coderay (~> 1.1.0) |
|||
method_source (~> 0.8.1) |
|||
slop (~> 3.4) |
|||
win32console (~> 1.3) |
|||
rack (1.5.2) |
|||
rack-contrib (1.1.0) |
|||
rack (>= 0.9.1) |
|||
rack-test (0.6.2) |
|||
rack (>= 1.0) |
|||
rails (4.0.0) |
|||
actionmailer (= 4.0.0) |
|||
actionpack (= 4.0.0) |
|||
activerecord (= 4.0.0) |
|||
activesupport (= 4.0.0) |
|||
bundler (>= 1.3.0, < 2.0) |
|||
railties (= 4.0.0) |
|||
sprockets-rails (~> 2.0.0) |
|||
rails-assets-cdn (0.1.0) |
|||
rails |
|||
rails_12factor (0.0.2) |
|||
rails_serve_static_assets |
|||
rails_stdout_logging |
|||
rails_serve_static_assets (0.0.2) |
|||
rails_stdout_logging (0.0.3) |
|||
railties (4.0.0) |
|||
actionpack (= 4.0.0) |
|||
activesupport (= 4.0.0) |
|||
rake (>= 0.8.7) |
|||
thor (>= 0.18.1, < 2.0) |
|||
rake (10.3.2) |
|||
rb-fsevent (0.9.4) |
|||
rb-inotify (0.9.5) |
|||
ffi (>= 0.5.0) |
|||
rest-client (1.7.2) |
|||
mime-types (>= 1.16, < 3.0) |
|||
netrc (~> 0.7) |
|||
rest-client (1.7.2-x86-mingw32) |
|||
ffi (~> 1.9) |
|||
mime-types (>= 1.16, < 3.0) |
|||
netrc (~> 0.7) |
|||
restclient_with_cert (0.0.8) |
|||
rest-client (>= 1.6) |
|||
rspec (3.0.0) |
|||
rspec-core (~> 3.0.0) |
|||
rspec-expectations (~> 3.0.0) |
|||
rspec-mocks (~> 3.0.0) |
|||
rspec-core (3.0.2) |
|||
rspec-support (~> 3.0.0) |
|||
rspec-expectations (3.0.2) |
|||
diff-lcs (>= 1.2.0, < 2.0) |
|||
rspec-support (~> 3.0.0) |
|||
rspec-mocks (3.0.2) |
|||
rspec-support (~> 3.0.0) |
|||
rspec-rails (3.0.1) |
|||
actionpack (>= 3.0) |
|||
activesupport (>= 3.0) |
|||
railties (>= 3.0) |
|||
rspec-core (~> 3.0.0) |
|||
rspec-expectations (~> 3.0.0) |
|||
rspec-mocks (~> 3.0.0) |
|||
rspec-support (~> 3.0.0) |
|||
rspec-support (3.0.2) |
|||
rubyzip (1.1.6) |
|||
rvm-capistrano (1.5.3) |
|||
capistrano (~> 2.15.4) |
|||
safe_yaml (1.0.3) |
|||
sass (3.2.19) |
|||
sass-rails (4.0.3) |
|||
railties (>= 4.0.0, < 5.0) |
|||
sass (~> 3.2.0) |
|||
sprockets (~> 2.8, <= 2.11.0) |
|||
sprockets-rails (~> 2.0) |
|||
selenium-webdriver (2.42.0) |
|||
childprocess (>= 0.5.0) |
|||
multi_json (~> 1.0) |
|||
rubyzip (~> 1.0) |
|||
websocket (~> 1.0.4) |
|||
simplecov (0.9.0) |
|||
docile (~> 1.1.0) |
|||
multi_json |
|||
simplecov-html (~> 0.8.0) |
|||
simplecov-html (0.8.0) |
|||
sitemap_generator (5.0.4) |
|||
builder |
|||
slop (3.6.0) |
|||
sorcery (0.8.6) |
|||
bcrypt (~> 3.1) |
|||
oauth (~> 0.4, >= 0.4.4) |
|||
oauth2 (>= 0.8.0, < 1.0.0) |
|||
sprockets (2.11.0) |
|||
hike (~> 1.2) |
|||
multi_json (~> 1.0) |
|||
rack (~> 1.0) |
|||
tilt (~> 1.1, != 1.3.0) |
|||
sprockets-rails (2.0.1) |
|||
actionpack (>= 3.0) |
|||
activesupport (>= 3.0) |
|||
sprockets (~> 2.8) |
|||
subexec (0.2.3) |
|||
term-ansicolor (1.3.0) |
|||
tins (~> 1.0) |
|||
thor (0.19.1) |
|||
thread_safe (0.3.4) |
|||
tilt (1.4.1) |
|||
timers (1.1.0) |
|||
tins (1.3.0) |
|||
treetop (1.4.15) |
|||
polyglot |
|||
polyglot (>= 0.3.1) |
|||
tzinfo (0.3.40) |
|||
uglifier (2.5.3) |
|||
execjs (>= 0.3.0) |
|||
json (>= 1.8.0) |
|||
unicode_utils (1.4.0) |
|||
wdm (0.1.0) |
|||
webmock (1.18.0) |
|||
addressable (>= 2.3.6) |
|||
crack (>= 0.3.2) |
|||
websocket (1.0.7) |
|||
websocket-driver (0.3.4) |
|||
win32console (1.3.2-x86-mingw32) |
|||
wysiwyg-rails (1.1.6) |
|||
font-awesome-rails (= 4.1.0.0) |
|||
railties (>= 3.2, < 5.0) |
|||
xpath (2.0.0) |
|||
nokogiri (~> 1.3) |
|||
|
|||
PLATFORMS |
|||
ruby |
|||
x86-mingw32 |
|||
|
|||
DEPENDENCIES |
|||
activerecord-session_store |
|||
acts_as_list |
|||
awesome_print |
|||
better_errors |
|||
binding_of_caller |
|||
capistrano |
|||
capybara |
|||
carmen-rails |
|||
carrierwave |
|||
carrierwave-imageoptimizer |
|||
coffee-rails (~> 4.0.0) |
|||
compass-rails (~> 1.1.3) |
|||
coveralls |
|||
cucumber-rails |
|||
database_cleaner |
|||
factory_girl_rails |
|||
font-awesome-rails |
|||
forgery |
|||
foundation-rails |
|||
geocoder |
|||
guard-rspec |
|||
haml |
|||
haml-rails |
|||
i18n-active_record! |
|||
jquery-rails |
|||
jquery-ui-rails |
|||
launchy |
|||
meta_request |
|||
mini_magick |
|||
nested_form |
|||
oauth2 (~> 0.8.0) |
|||
paper_trail (~> 3.0.5) |
|||
paypal-express |
|||
pg |
|||
poltergeist |
|||
rails (= 4.0.0) |
|||
rails-assets-cdn |
|||
rails-footnotes! |
|||
rails_12factor |
|||
rspec |
|||
rspec-rails |
|||
rvm-capistrano |
|||
sass-rails (~> 4.0.0) |
|||
selenium-webdriver |
|||
simplecov |
|||
sitemap_generator |
|||
sorcery (>= 0.8.1) |
|||
uglifier (>= 1.3.0) |
|||
wdm (>= 0.1.0) |
|||
webmock |
|||
wysiwyg-rails |
|||
|
@ -1,37 +1,37 @@ |
|||
#= require froala_editor.min.js |
|||
$ -> |
|||
$('[data-editable]').editable({inlineMode: true, blockTags: ["n", "p", "h2", "blockquote", "pre"], buttons: ["formatBlock", "bold", "italic", "underline", "insertOrderedList", "insertUnorderedList", "sep", "createLink", "insertImage", "insertVideo", "html", "undo", "redo"]}) |
|||
$('[data-editor]').editable({inlineMode: false, blockTags: ["n", "p", "h2", "blockquote", "pre"], buttons: ["formatBlock", "bold", "italic", "underline", "insertOrderedList", "insertUnorderedList", "sep", "createLink", "html", "undo", "redo"]}) |
|||
$('.field.country-select-field select').change () -> |
|||
$country = $(this) |
|||
country = $country.val() |
|||
$territory = $('.field.subregion-select-field select') |
|||
if $territory.data().country == country |
|||
$territory.removeClass('can cant').addClass('can') |
|||
return |
|||
|
|||
$.post '/location/territories', {country: country}, |
|||
(json) -> |
|||
$territory.html('') |
|||
if json && Object.keys(json).length |
|||
$.each json, (code, name) -> |
|||
$territory.append($('<option>').text(name).attr('value', code)) |
|||
return |
|||
$territory.removeClass('can cant').addClass('can') |
|||
$territory.data().country = country |
|||
else |
|||
$territory.removeClass('can cant').addClass('cant') |
|||
return |
|||
, 'json' |
|||
$('img + input[type="file"]').change () -> |
|||
readURL(this); |
|||
return |
|||
|
|||
readURL = (input) -> |
|||
reader = null |
|||
if input.files && input.files[0] |
|||
reader = new FileReader() |
|||
reader.readAsDataURL input.files[0] |
|||
reader.onload = (e) -> |
|||
$(input).prev().attr('src', e.target.result) |
|||
return |
|||
#= require froala_editor.min.js |
|||
$ -> |
|||
$('[data-editable]').editable({inlineMode: true, blockTags: ["n", "p", "h2", "blockquote", "pre"], buttons: ["formatBlock", "bold", "italic", "underline", "insertOrderedList", "insertUnorderedList", "sep", "createLink", "insertImage", "insertVideo", "html", "undo", "redo"]}) |
|||
$('[data-editor]').editable({inlineMode: false, blockTags: ["n", "p", "h2", "blockquote", "pre"], buttons: ["formatBlock", "bold", "italic", "underline", "insertOrderedList", "insertUnorderedList", "sep", "createLink", "html", "undo", "redo"]}) |
|||
$('.field.country-select-field select').change () -> |
|||
$country = $(this) |
|||
country = $country.val() |
|||
$territory = $('.field.subregion-select-field select') |
|||
if $territory.data().country == country |
|||
$territory.removeClass('can cant').addClass('can') |
|||
return |
|||
|
|||
$.post '/location/territories', {country: country}, |
|||
(json) -> |
|||
$territory.html('') |
|||
if json && Object.keys(json).length |
|||
$.each json, (code, name) -> |
|||
$territory.append($('<option>').text(name).attr('value', code)) |
|||
return |
|||
$territory.removeClass('can cant').addClass('can') |
|||
$territory.data().country = country |
|||
else |
|||
$territory.removeClass('can cant').addClass('cant') |
|||
return |
|||
, 'json' |
|||
$('img + input[type="file"]').change () -> |
|||
readURL(this); |
|||
return |
|||
|
|||
readURL = (input) -> |
|||
reader = null |
|||
if input.files && input.files[0] |
|||
reader = new FileReader() |
|||
reader.readAsDataURL input.files[0] |
|||
reader.onload = (e) -> |
|||
$(input).prev().attr('src', e.target.result) |
|||
return |
|||
|
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,9 @@ |
|||
development: |
|||
username: goodgodwin-facilitator_api1.hotmail.com |
|||
password: 1364499062 |
|||
signature: A8ydvWJ4VGIEPgYhKlCiqbJ7KrGvATclp5xDn-IKlmSUFXGwcA62ZT82 |
|||
|
|||
test: |
|||
username: goodgodwin-facilitator_api1.hotmail.com |
|||
password: 1364499062 |
|||
signature: A8ydvWJ4VGIEPgYhKlCiqbJ7KrGvATclp5xDn-IKlmSUFXGwcA62ZT82 |
@ -0,0 +1,7 @@ |
|||
development: |
|||
username: admin |
|||
password: password |
|||
|
|||
test: |
|||
username: admin |
|||
password: password |
File diff suppressed because it is too large
@ -1,238 +1,240 @@ |
|||
Given(/^I am on the (.+) page$/) do |page_name| |
|||
visit path_to(page_name.to_sym) |
|||
end |
|||
|
|||
Given(/^I am on the (.+) site$/) do |language| |
|||
ApplicationController::set_host (get_language_code(language) + '.bikebike.org') |
|||
end |
|||
|
|||
Given(/^I am in (.+)$/) do |location| |
|||
ApplicationController::set_location (location) |
|||
end |
|||
|
|||
When(/^I go to the (.+) page$/) do |page_name| |
|||
visit path_to(page_name.to_sym) |
|||
end |
|||
|
|||
When(/^(I )?(finish|cancel) ((with )?paypal)$/) do |a, action, b, c| |
|||
@last_registration.payment_info = {:payer_id => '1234', :token => '5678', :amount => @last_payment_amount}.to_yaml |
|||
@last_registration.save! |
|||
visit path_to((action == 'finish' ? 'confirm' : action) + ' paypal') |
|||
end |
|||
|
|||
Then(/^(I )?pay \$?([\d\.]+)$/) do | a, amount | |
|||
button = nil |
|||
begin; button = locate("auto pay #{amount.to_f.to_i}"); rescue; end |
|||
if button |
|||
click_link_or_button(button) |
|||
else |
|||
fill_in(locate('payment amount'), :with => amount) |
|||
click_link_or_button(locate('custom amount')) |
|||
end |
|||
@last_payment_amount = amount |
|||
end |
|||
|
|||
Then(/^(I )?(don't )?have enough funds$/) do | a, status | |
|||
if status.blank? |
|||
info = YAML.load(@last_registration.payment_info) |
|||
info[:status] = 'Completed' |
|||
@last_registration.payment_info = info.to_yaml |
|||
@last_registration.save! |
|||
end |
|||
end |
|||
|
|||
Given(/^There is an upcoming conference( in .+)?$/) do |location| |
|||
@last_conference = FactoryGirl.create(:upcoming_conference) |
|||
if location |
|||
@org = create_org(nil, location) |
|||
@last_conference.organizations << @org |
|||
@last_conference.save! |
|||
end |
|||
end |
|||
|
|||
Given(/^an organization( named .+)? exists( in .+)?$/) do |name, location| |
|||
if location =~ /every country/i |
|||
Carmen::World.instance.subregions.each { |country| |
|||
#puts "#{country.code}" |
|||
|
|||
if country.subregions? |
|||
country.subregions.each { |region| |
|||
org = Organization.new(name: rand(36**16).to_s(36), slug: rand(36**16).to_s(36))#create_org#(Forgery::LoremIpsum.sentence) |
|||
org.locations << Location.new(city: 'City', country: country.code, territory: region.code) |
|||
org.save! |
|||
} |
|||
else |
|||
org = Organization.new(name: rand(36**16).to_s(36), slug: rand(36**16).to_s(36))#create_org#(Forgery::LoremIpsum.sentence) |
|||
org.locations << Location.new(city: 'City', country: country.code) |
|||
org.save! |
|||
end |
|||
} |
|||
else |
|||
create_org(name ? name.gsub(/^\s*named\s+(.*?)\s*$/, '\1') : nil, location ? location.gsub(/^\s*in\s+(.*?)\s*$/, '\1') : nil) |
|||
end |
|||
end |
|||
|
|||
Given(/^Registration is (open|closed)$/) do |status| |
|||
@last_conference.registration_open = (status == 'open') |
|||
@last_conference.save! |
|||
end |
|||
|
|||
Then(/^I (should )?see (.+)$/) do | a, item | |
|||
if /(the )?Bike!Bike! logo$/ =~ item |
|||
expect(page).to have_selector('svg.logo') |
|||
elsif /(the|a)?\s?(.+) menu item$/ =~ item |
|||
within('#main-nav') { expect(page).to have_link Regexp.last_match(2) } |
|||
elsif /(the|a)?\s?(.+) image$/ =~ item |
|||
expect(page).to have_selector('#'+Regexp.last_match(2)+' img') |
|||
elsif /(the|a)?\s?(.+) link$/ =~ item |
|||
expect(page).to have_link Regexp.last_match(2) |
|||
else |
|||
expect(page).to have_text item |
|||
end |
|||
end |
|||
|
|||
|
|||
## ======= Forms ======= ## |
|||
|
|||
Then(/^(I )?click on (.+?)( button| link| which is hidden)?$/) do | a, item, type | |
|||
item = item.gsub(/^\s*(a|the)\s*(.*)$/, '\2') |
|||
if type && type.strip == 'button' |
|||
click_button(item) |
|||
elsif type && type.strip == 'link' |
|||
click_link(item) |
|||
elsif type && type =~ /hidden/ |
|||
find('[id$="' + item.gsub(/\s+/, '_') + '"]', :visible => false).click |
|||
else |
|||
page.find_link(item).trigger('click') |
|||
end |
|||
end |
|||
|
|||
Then(/^(I )?press (.+)$/) do | a, item | |
|||
click_link_or_button(locate(item)) |
|||
end |
|||
|
|||
Then(/^I (un)?check (.+)$/) do | state, item | |
|||
if state == 'un' |
|||
uncheck(locate(item)) |
|||
else |
|||
check(locate(item)) |
|||
end |
|||
end |
|||
|
|||
Then(/^I fill in (.+?) with (.+)$/) do | field, value | |
|||
field = field.gsub(/^\s*(my|the)\s*(.+)$/, '\2') |
|||
fill_in(locate(field), :with => value) |
|||
|
|||
if /email/ =~ field && !(/organization/ =~ field) |
|||
@last_email_entered = value |
|||
end |
|||
end |
|||
|
|||
Then(/^(my )?(.+)? should (not )?be set to (.+)$/) do | a, field, should, value | |
|||
field = field.gsub(/^\s*(my|the)\s*(.+)$/, '\2') |
|||
page.find('[id$="' + field.gsub(/\s+/, '_') + '"]').value.send(should.nil? ? 'should' : 'should_not', eq(value)) |
|||
end |
|||
|
|||
Then(/^(my )?(.+)? should (not )?be checked$/) do | a, field, should | |
|||
field = field.gsub(/^\s*(my|the)\s*(.+)$/, '\2') |
|||
page.find('[id$="' + field.gsub(/\s+/, '_') + '"]').send(should.nil? ? 'should' : 'should_not', be_checked) |
|||
end |
|||
|
|||
Then(/^I set (.+?) to (.+)$/) do | field, value | |
|||
field = field.gsub(/^\s*(my|the)\s*(.+)$/, '\2') |
|||
page.find('[id$="' + field.gsub(/\s+/, '_') + '"]', :visible => false).set value |
|||
end |
|||
|
|||
Then(/^(I )wait for (.+?) to appear$/) do | a, field | |
|||
count = 0 |
|||
element = nil |
|||
while element.nil? && count < 120 |
|||
begin element = page.find('[id$="' + field.gsub(/\s+/, '_') + '"]'); rescue; end |
|||
begin element ||= page.find('[id$="' + field.gsub(/\s+/, '_') + '"]', :visible => false); rescue; end |
|||
sleep(1) |
|||
count += 1 |
|||
end |
|||
end |
|||
|
|||
Then(/^show the page$/) do |
|||
print page.html |
|||
save_and_open_page |
|||
end |
|||
|
|||
Then(/^I select (.+?) from (.+)$/) do | value, field | |
|||
select(value, :from => locate(field)) |
|||
end |
|||
|
|||
## ======= Emails ======= ## |
|||
|
|||
Then(/^I should not get an email$/) do |
|||
ActionMailer::Base.deliveries.size.should eq 0 |
|||
end |
|||
|
|||
Then (/^I should get an? (.+) email$/) do |subject| |
|||
@last_email = ActionMailer::Base.deliveries.last |
|||
if @last_email_entered |
|||
@last_email.to.should include @last_email_entered |
|||
end |
|||
@last_email.subject.should include(subject) |
|||
end |
|||
|
|||
Then (/^the email should contain (.+)$/) do |value| |
|||
@last_email.parts.first.body.raw_source.should include(value) |
|||
@last_email.parts.last.body.raw_source.should include(value) |
|||
end |
|||
|
|||
Then (/^in the email I should see (.+)$/) do |value| |
|||
if /(an?|the|my) (.+) link/ =~ value |
|||
test = path_to Regexp.last_match(2) |
|||
@last_email.parts.first.body.raw_source.should include(test) |
|||
@last_email.parts.last.body.raw_source.should include(test) |
|||
else |
|||
@last_email.parts.first.body.raw_source.should include(value) |
|||
@last_email.parts.last.body.raw_source.should include(value) |
|||
end |
|||
end |
|||
|
|||
Then (/^I should (not )?be registered for the conference$/) do |state| |
|||
@last_registration = ConferenceRegistration.find_by(:email => @last_email_entered) |
|||
if state && state.strip == 'not' |
|||
@last_registration.should be_nil |
|||
else |
|||
@last_registration.should_not be_nil |
|||
end |
|||
end |
|||
|
|||
Then (/^my registration (should( not)? be|is( not)?) (confirmed|completed?|paid)$/) do |state, x, y, field| |
|||
ConferenceRegistration.find_by!(:email => @last_email_entered). |
|||
send(field == 'confirmed' ? 'is_confirmed' : (field == 'paid' ? 'registration_fees_paid' : field)). |
|||
send(state =~ / not/ ? 'should_not' : 'should', be) |
|||
end |
|||
|
|||
Then (/^I am( not)? a user$/) do |state| |
|||
User.find_by(:email => @last_email_entered). |
|||
send(state =~ / not/ ? 'should_not' : 'should', be) |
|||
end |
|||
|
|||
Then (/^I am( not)? a member of (.+)$/) do |state, org_name| |
|||
user = nil |
|||
should_be = !(state =~ / not/) |
|||
org = Organization.find_by(:name => org_name) |
|||
if should_be |
|||
org.should be |
|||
org.users.should be |
|||
elsif org.nil? || org.users.nil? |
|||
return |
|||
end |
|||
org.users.each { |u| |
|||
if u.email == @last_email_entered |
|||
user = u |
|||
end |
|||
} |
|||
user.send(should_be ? 'should' : 'should_not', be) |
|||
end |
|||
|
|||
Then (/^My (.+) should(not )? be (.+)$/) do |field, state, value| |
|||
User.find_by(:email => @last_email_entered). |
|||
send(field.gsub(/\s/, '_')). |
|||
send(state =~ / not/ ? 'should_not' : 'should', eq(value)) |
|||
end |
|||
Given(/^I am on the (.+) page$/) do |page_name| |
|||
visit path_to(page_name.to_sym) |
|||
end |
|||
|
|||
Given(/^I am on the (.+) site$/) do |language| |
|||
ApplicationController::set_host (get_language_code(language) + '.bikebike.org') |
|||
end |
|||
|
|||
Given(/^I am in (.+)$/) do |location| |
|||
ApplicationController::set_location (location) |
|||
end |
|||
|
|||
When(/^I go to the (.+) page$/) do |page_name| |
|||
visit path_to(page_name.to_sym) |
|||
end |
|||
|
|||
When(/^(I )?(finish|cancel) ((with )?(paypal|the payment))$/) do |a, action, b, c, d| |
|||
if action != 'cancel' |
|||
@last_registration.payment_info = {:payer_id => '1234', :token => '5678', :amount => @last_payment_amount}.to_yaml |
|||
@last_registration.save! |
|||
end |
|||
visit path_to((action == 'finish' ? 'confirm' : action) + ' paypal') |
|||
end |
|||
|
|||
Then(/^(I )?pay \$?([\d\.]+)$/) do | a, amount | |
|||
button = nil |
|||
begin; button = locate("auto pay #{amount.to_f.to_i}"); rescue; end |
|||
if button |
|||
click_link_or_button(button) |
|||
else |
|||
fill_in(locate('payment amount'), :with => amount) |
|||
click_link_or_button(locate('custom amount')) |
|||
end |
|||
@last_payment_amount = amount |
|||
end |
|||
|
|||
Then(/^(I )?(don't )?have enough funds$/) do | a, status | |
|||
if status.blank? |
|||
info = YAML.load(@last_registration.payment_info) |
|||
info[:status] = 'Completed' |
|||
@last_registration.payment_info = info.to_yaml |
|||
@last_registration.save! |
|||
end |
|||
end |
|||
|
|||
Given(/^There is an upcoming conference( in .+)?$/) do |location| |
|||
@last_conference = FactoryGirl.create(:upcoming_conference) |
|||
if location |
|||
@org = create_org(nil, location) |
|||
@last_conference.organizations << @org |
|||
@last_conference.save! |
|||
end |
|||
end |
|||
|
|||
Given(/^an organization( named .+)? exists( in .+)?$/) do |name, location| |
|||
if location =~ /every country/i |
|||
Carmen::World.instance.subregions.each { |country| |
|||
#puts "#{country.code}" |
|||
|
|||
if country.subregions? |
|||
country.subregions.each { |region| |
|||
org = Organization.new(name: rand(36**16).to_s(36), slug: rand(36**16).to_s(36))#create_org#(Forgery::LoremIpsum.sentence) |
|||
org.locations << Location.new(city: 'City', country: country.code, territory: region.code) |
|||
org.save! |
|||
} |
|||
else |
|||
org = Organization.new(name: rand(36**16).to_s(36), slug: rand(36**16).to_s(36))#create_org#(Forgery::LoremIpsum.sentence) |
|||
org.locations << Location.new(city: 'City', country: country.code) |
|||
org.save! |
|||
end |
|||
} |
|||
else |
|||
create_org(name ? name.gsub(/^\s*named\s+(.*?)\s*$/, '\1') : nil, location ? location.gsub(/^\s*in\s+(.*?)\s*$/, '\1') : nil) |
|||
end |
|||
end |
|||
|
|||
Given(/^Registration is (open|closed)$/) do |status| |
|||
@last_conference.registration_open = (status == 'open') |
|||
@last_conference.save! |
|||
end |
|||
|
|||
Then(/^I (should )?see (.+)$/) do | a, item | |
|||
if /(the )?Bike!Bike! logo$/ =~ item |
|||
expect(page).to have_selector('svg.logo') |
|||
elsif /(the|a)?\s?(.+) menu item$/ =~ item |
|||
within('#main-nav') { expect(page).to have_link Regexp.last_match(2) } |
|||
elsif /(the|a)?\s?(.+) image$/ =~ item |
|||
expect(page).to have_selector('#'+Regexp.last_match(2)+' img') |
|||
elsif /(the|a)?\s?(.+) link$/ =~ item |
|||
expect(page).to have_link Regexp.last_match(2) |
|||
else |
|||
expect(page).to have_text item |
|||
end |
|||
end |
|||
|
|||
|
|||
## ======= Forms ======= ## |
|||
|
|||
Then(/^(I )?click on (.+?)( button| link| which is hidden)?$/) do | a, item, type | |
|||
item = item.gsub(/^\s*(a|the)\s*(.*)$/, '\2') |
|||
if type && type.strip == 'button' |
|||
click_button(item) |
|||
elsif type && type.strip == 'link' |
|||
click_link(item) |
|||
elsif type && type =~ /hidden/ |
|||
find('[id$="' + item.gsub(/\s+/, '_') + '"]', :visible => false).click |
|||
else |
|||
page.find_link(item).trigger('click') |
|||
end |
|||
end |
|||
|
|||
Then(/^(I )?press (.+)$/) do | a, item | |
|||
click_link_or_button(locate(item)) |
|||
end |
|||
|
|||
Then(/^I (un)?check (.+)$/) do | state, item | |
|||
if state == 'un' |
|||
uncheck(locate(item)) |
|||
else |
|||
check(locate(item)) |
|||
end |
|||
end |
|||
|
|||
Then(/^I fill in (.+?) with (.+)$/) do | field, value | |
|||
field = field.gsub(/^\s*(my|the)\s*(.+)$/, '\2') |
|||
fill_in(locate(field), :with => value) |
|||
|
|||
if /email/ =~ field && !(/organization/ =~ field) |
|||
@last_email_entered = value |
|||
end |
|||
end |
|||
|
|||
Then(/^(my )?(.+)? should (not )?be set to (.+)$/) do | a, field, should, value | |
|||
field = field.gsub(/^\s*(my|the)\s*(.+)$/, '\2') |
|||
page.find('[id$="' + field.gsub(/\s+/, '_') + '"]').value.send(should.nil? ? 'should' : 'should_not', eq(value)) |
|||
end |
|||
|
|||
Then(/^(my )?(.+)? should (not )?be checked$/) do | a, field, should | |
|||
field = field.gsub(/^\s*(my|the)\s*(.+)$/, '\2') |
|||
page.find('[id$="' + field.gsub(/\s+/, '_') + '"]').send(should.nil? ? 'should' : 'should_not', be_checked) |
|||
end |
|||
|
|||
Then(/^I set (.+?) to (.+)$/) do | field, value | |
|||
field = field.gsub(/^\s*(my|the)\s*(.+)$/, '\2') |
|||
page.find('[id$="' + field.gsub(/\s+/, '_') + '"]', :visible => false).set value |
|||
end |
|||
|
|||
Then(/^(I )wait for (.+?) to appear$/) do | a, field | |
|||
count = 0 |
|||
element = nil |
|||
while element.nil? && count < 120 |
|||
begin element = page.find('[id$="' + field.gsub(/\s+/, '_') + '"]'); rescue; end |
|||
begin element ||= page.find('[id$="' + field.gsub(/\s+/, '_') + '"]', :visible => false); rescue; end |
|||
sleep(1) |
|||
count += 1 |
|||
end |
|||
end |
|||
|
|||
Then(/^show the page$/) do |
|||
print page.html |
|||
save_and_open_page |
|||
end |
|||
|
|||
Then(/^I select (.+?) from (.+)$/) do | value, field | |
|||
select(value, :from => locate(field)) |
|||
end |
|||
|
|||
## ======= Emails ======= ## |
|||
|
|||
Then(/^I should not get an email$/) do |
|||
ActionMailer::Base.deliveries.size.should eq 0 |
|||
end |
|||
|
|||
Then (/^I should get an? (.+) email$/) do |subject| |
|||
@last_email = ActionMailer::Base.deliveries.last |
|||
if @last_email_entered |
|||
@last_email.to.should include @last_email_entered |
|||
end |
|||
@last_email.subject.should include(subject) |
|||
end |
|||
|
|||
Then (/^the email should contain (.+)$/) do |value| |
|||
@last_email.parts.first.body.raw_source.should include(value) |
|||
@last_email.parts.last.body.raw_source.should include(value) |
|||
end |
|||
|
|||
Then (/^in the email I should see (.+)$/) do |value| |
|||
if /(an?|the|my) (.+) link/ =~ value |
|||
test = path_to Regexp.last_match(2) |
|||
@last_email.parts.first.body.raw_source.should include(test) |
|||
@last_email.parts.last.body.raw_source.should include(test) |
|||
else |
|||
@last_email.parts.first.body.raw_source.should include(value) |
|||
@last_email.parts.last.body.raw_source.should include(value) |
|||
end |
|||
end |
|||
|
|||
Then (/^I should (not )?be registered for the conference$/) do |state| |
|||
@last_registration = ConferenceRegistration.find_by(:email => @last_email_entered) |
|||
if state && state.strip == 'not' |
|||
@last_registration.should be_nil |
|||
else |
|||
@last_registration.should_not be_nil |
|||
end |
|||
end |
|||
|
|||
Then (/^my registration (should( not)? be|is( not)?) (confirmed|completed?|paid)$/) do |state, x, y, field| |
|||
ConferenceRegistration.find_by!(:email => @last_email_entered). |
|||
send(field == 'confirmed' ? 'is_confirmed' : (field == 'paid' ? 'registration_fees_paid' : field)). |
|||
send(state =~ / not/ ? 'should_not' : 'should', be) |
|||
end |
|||
|
|||
Then (/^I am( not)? a user$/) do |state| |
|||
User.find_by(:email => @last_email_entered). |
|||
send(state =~ / not/ ? 'should_not' : 'should', be) |
|||
end |
|||
|
|||
Then (/^I am( not)? a member of (.+)$/) do |state, org_name| |
|||
user = nil |
|||
should_be = !(state =~ / not/) |
|||
org = Organization.find_by(:name => org_name) |
|||
if should_be |
|||
org.should be |
|||
org.users.should be |
|||
elsif org.nil? || org.users.nil? |
|||
return |
|||
end |
|||
org.users.each { |u| |
|||
if u.email == @last_email_entered |
|||
user = u |
|||
end |
|||
} |
|||
user.send(should_be ? 'should' : 'should_not', be) |
|||
end |
|||
|
|||
Then (/^My (.+) should(not )? be (.+)$/) do |field, state, value| |
|||
User.find_by(:email => @last_email_entered). |
|||
send(field.gsub(/\s/, '_')). |
|||
send(state =~ / not/ ? 'should_not' : 'should', eq(value)) |
|||
end |
|||
|
@ -1,36 +1,38 @@ |
|||
module NavigationHelpers |
|||
def path_to(page_name) |
|||
append_root = false |
|||
case page_name |
|||
when /^landing$/i |
|||
path = :root |
|||
when /^confirmation$/i |
|||
path = "/conferences/bikebike/#{@last_conference.slug}/register/confirm/#{@last_registration.confirmation_token}" |
|||
when /^pay registration$/i |
|||
path = "/conferences/bikebike/#{@last_conference.slug}/register/pay-registration/#{@last_registration.confirmation_token}" |
|||
when /^confirm paypal$/i |
|||
path = "/conferences/bikebike/#{@last_conference.slug}/register/paypal-confirm/#{@last_registration.payment_confirmation_token}" |
|||
when /^cancel paypal$/i |
|||
path = "/conferences/bikebike/#{@last_conference.slug}/register/paypal-cancel/#{@last_registration.confirmation_token}" |
|||
when /^translation list$/i |
|||
path = '/translations/' |
|||
when /^(.+) translations?$/i |
|||
path = '/translations/' + get_language_code(Regexp.last_match(1)) |
|||
when /^organization list$/i |
|||
path = '/organizations/' |
|||
end |
|||
|
|||
if path.is_a?(Symbol) |
|||
begin |
|||
path = self.send((path.to_s + '_url').to_sym).gsub(/^http:\/\/.+?(\/.*)$/, '\1') |
|||
rescue Object => e |
|||
raise "Can't find mapping from \"#{page_name}\" to a path.\n" + |
|||
"#{path}_url\n" + |
|||
"Now, go and add a mapping in #{__FILE__}" |
|||
end |
|||
end |
|||
path |
|||
end |
|||
end |
|||
|
|||
World(NavigationHelpers) |
|||
module NavigationHelpers |
|||
def path_to(page_name) |
|||
append_root = false |
|||
case page_name |
|||
when /^landing$/i |
|||
path = :root |
|||
when /^confirmation$/i |
|||
path = "/conferences/bikebike/#{@last_conference.slug}/register/confirm/#{@last_registration.confirmation_token}" |
|||
when /^registration$/i |
|||
path = "/conferences/bikebike/#{@last_conference.slug}/register/" |
|||
when /^pay registration$/i |
|||
path = "/conferences/bikebike/#{@last_conference.slug}/register/pay-registration/#{@last_registration.confirmation_token}" |
|||
when /^confirm paypal$/i |
|||
path = "/conferences/bikebike/#{@last_conference.slug}/register/paypal-confirm/#{@last_registration.payment_confirmation_token}" |
|||
when /^cancel paypal$/i |
|||
path = "/conferences/bikebike/#{@last_conference.slug}/register/paypal-cancel/#{@last_registration.confirmation_token}" |
|||
when /^translation list$/i |
|||
path = '/translations/' |
|||
when /^(.+) translations?$/i |
|||
path = '/translations/' + get_language_code(Regexp.last_match(1)) |
|||
when /^organization list$/i |
|||
path = '/organizations/' |
|||
end |
|||
|
|||
if path.is_a?(Symbol) |
|||
begin |
|||
path = self.send((path.to_s + '_url').to_sym).gsub(/^http:\/\/.+?(\/.*)$/, '\1') |
|||
rescue Object => e |
|||
raise "Can't find mapping from \"#{page_name}\" to a path.\n" + |
|||
"#{path}_url\n" + |
|||
"Now, go and add a mapping in #{__FILE__}" |
|||
end |
|||
end |
|||
path |
|||
end |
|||
end |
|||
|
|||
World(NavigationHelpers) |
|||
|
@ -1,46 +1,47 @@ |
|||
Feature: Volunteer Registration |
|||
In order to register to volunteer at the latest Bike!Bike! |
|||
As a visitor |
|||
|
|||
@javascript |
|||
Scenario: Register as volunteer |
|||
Given There is an upcoming conference in Moncton NB |
|||
And Registration is open |
|||
|
|||
When I go to the landing page |
|||
Then I see a Register Now link |
|||
And I click on the Register Now link |
|||
|
|||
And I fill in my email with example@example.com |
|||
And I press register |
|||
|
|||
And I fill in my firstname with Francis |
|||
And I fill in my lastname with Bacon |
|||
And I fill in my username with Bacon |
|||
And I check is_volunteer |
|||
And I press next |
|||
|
|||
Then I see Contact Information |
|||
And I fill in address with 1234 Some St. |
|||
And I fill in phone number with 555-555-5555 |
|||
|
|||
Then I see Do you have housing |
|||
And I fill in beds with 0 |
|||
And I fill in couch_space with 5 |
|||
And I fill in tents with 2 |
|||
|
|||
Then I see Anything else |
|||
And I fill in other with So excited! |
|||
|
|||
And I press next |
|||
|
|||
Then I should be registered for the conference |
|||
And my registration should not be confirmed |
|||
And I should get a confirm email |
|||
And in the email I should see please confirm your registration |
|||
And in the email I should see a confirmation link registration |
|||
|
|||
When I go to the confirmation page |
|||
Then I should see Thanks for completing your registration |
|||
And my registration is complete |
|||
And my registration is completed |
|||
#Feature: Volunteer Registration |
|||
# In order to register to volunteer at the latest Bike!Bike! |
|||
# As a visitor |
|||
# |
|||
# @javascript |
|||
# Scenario: Register as volunteer |
|||
# Given There is an upcoming conference in Moncton NB |
|||
# And Registration is open |
|||
# |
|||
# When I go to the landing page |
|||
# Then I see a Register Now link |
|||
# And I click on the Register Now link |
|||
# |
|||
# And I fill in my email with example@example.com |
|||
# And I press register |
|||
# |
|||
# And I fill in my firstname with Francis |
|||
# And I fill in my lastname with Bacon |
|||
# And I fill in my username with Bacon |
|||
# #And I check is_volunteer |
|||
# #And I press submit |
|||
# |
|||
# Then I see Contact Information |
|||
# And I fill in address with 1234 Some St. |
|||
# And I fill in phone number with 555-555-5555 |
|||
# |
|||
# Then I see Do you have housing |
|||
# And I fill in beds with 0 |
|||
# And I fill in couch_space with 5 |
|||
# And I fill in tents with 2 |
|||
# |
|||
# Then I see Anything else |
|||
# And I fill in other with So excited! |
|||
# |
|||
# And I press submit |
|||
# |
|||
# Then I should be registered for the conference |
|||
# And my registration should not be confirmed |
|||
# And I should get a confirm email |
|||
# And in the email I should see please confirm your registration |
|||
# And in the email I should see a confirmation link registration |
|||
# |
|||
# When I go to the confirmation page |
|||
# Then I should see Thanks for completing your registration |
|||
# And my registration is complete |
|||
# And my registration is completed |
|||
# |
|||
|
@ -1,62 +1,61 @@ |
|||
# This file is copied to spec/ when you run 'rails generate rspec:install' |
|||
ENV["RAILS_ENV"] ||= 'test' |
|||
require File.expand_path("../../config/environment", __FILE__) |
|||
require 'rspec/rails' |
|||
require 'rspec/autorun' |
|||
require 'bike_bike_test_helper' |
|||
#+require 'dotenv'; Dotenv.overload ".env.test" |
|||
|
|||
# Requires supporting ruby files with custom matchers and macros, etc, |
|||
# in spec/support/ and its subdirectories. |
|||
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } |
|||
|
|||
# Checks for pending migrations before tests are run. |
|||
# If you are not using ActiveRecord, you can remove this line. |
|||
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration) |
|||
|
|||
RSpec.configure do |config| |
|||
# ## Mock Framework |
|||
# |
|||
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: |
|||
# |
|||
# config.mock_with :mocha |
|||
# config.mock_with :flexmock |
|||
# config.mock_with :rr |
|||
|
|||
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures |
|||
config.fixture_path = "#{::Rails.root}/spec/fixtures" |
|||
|
|||
# If you're not using ActiveRecord, or you'd prefer not to run each of your |
|||
# examples within a transaction, remove the following line or assign false |
|||
# instead of true. |
|||
config.use_transactional_fixtures = true |
|||
|
|||
# If true, the base class of anonymous controllers will be inferred |
|||
# automatically. This will be the default behavior in future versions of |
|||
# rspec-rails. |
|||
config.infer_base_class_for_anonymous_controllers = false |
|||
|
|||
# Run specs in random order to surface order dependencies. If you find an |
|||
# order dependency and want to debug it, you can fix the order by providing |
|||
# the seed, which is printed after each run. |
|||
# --seed 1234 |
|||
config.order = "random" |
|||
|
|||
config.before(:each) do |
|||
fu |
|||
Translation.connection.execute("TRUNCATE TABLE translations RESTART IDENTITY;") |
|||
translations = DevTranslation.connection.select_all("SELECT * FROM translations") |
|||
|
|||
translations.each { |t| |
|||
Translation.connection.execute(" |
|||
INSERT INTO |
|||
translations |
|||
(id, locale, key, value, interpolations, is_proc, created_at, updated_at) |
|||
VALUES |
|||
(#{t['id']}, #{Translation.sanitize(t['locale'])}, #{Translation.sanitize(t['key'])}, #{Translation.sanitize(t['value'])}, #{Translation.sanitize(t['interpolations'])}, #{Translation.sanitize(t['is_proc'])}, #{Translation.sanitize(t['created_at'])}, #{Translation.sanitize(t['updated_at'])}) |
|||
;") |
|||
} |
|||
#visit 1, 2, 3 |
|||
end |
|||
|
|||
end |
|||
# This file is copied to spec/ when you run 'rails generate rspec:install' |
|||
ENV["RAILS_ENV"] ||= 'test' |
|||
require File.expand_path("../../config/environment", __FILE__) |
|||
require 'rspec/rails' |
|||
require 'rspec/autorun' |
|||
require 'bike_bike_test_helper' |
|||
#+require 'dotenv'; Dotenv.overload ".env.test" |
|||
|
|||
# Requires supporting ruby files with custom matchers and macros, etc, |
|||
# in spec/support/ and its subdirectories. |
|||
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } |
|||
|
|||
# Checks for pending migrations before tests are run. |
|||
# If you are not using ActiveRecord, you can remove this line. |
|||
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration) |
|||
|
|||
RSpec.configure do |config| |
|||
# ## Mock Framework |
|||
# |
|||
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: |
|||
# |
|||
# config.mock_with :mocha |
|||
# config.mock_with :flexmock |
|||
# config.mock_with :rr |
|||
|
|||
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures |
|||
config.fixture_path = "#{::Rails.root}/spec/fixtures" |
|||
|
|||
# If you're not using ActiveRecord, or you'd prefer not to run each of your |
|||
# examples within a transaction, remove the following line or assign false |
|||
# instead of true. |
|||
config.use_transactional_fixtures = true |
|||
|
|||
# If true, the base class of anonymous controllers will be inferred |
|||
# automatically. This will be the default behavior in future versions of |
|||
# rspec-rails. |
|||
config.infer_base_class_for_anonymous_controllers = false |
|||
|
|||
# Run specs in random order to surface order dependencies. If you find an |
|||
# order dependency and want to debug it, you can fix the order by providing |
|||
# the seed, which is printed after each run. |
|||
# --seed 1234 |
|||
config.order = "random" |
|||
|
|||
config.before(:each) do |
|||
Translation.connection.execute("TRUNCATE TABLE translations RESTART IDENTITY;") |
|||
translations = DevTranslation.connection.select_all("SELECT * FROM translations") |
|||
|
|||
translations.each { |t| |
|||
Translation.connection.execute(" |
|||
INSERT INTO |
|||
translations |
|||
(id, locale, key, value, interpolations, is_proc, created_at, updated_at) |
|||
VALUES |
|||
(#{t['id']}, #{Translation.sanitize(t['locale'])}, #{Translation.sanitize(t['key'])}, #{Translation.sanitize(t['value'])}, #{Translation.sanitize(t['interpolations'])}, #{Translation.sanitize(t['is_proc'])}, #{Translation.sanitize(t['created_at'])}, #{Translation.sanitize(t['updated_at'])}) |
|||
;") |
|||
} |
|||
#visit 1, 2, 3 |
|||
end |
|||
|
|||
end |
|||
|
Loading…
Reference in new issue