diff --git a/web/app/assets/javascripts/web/downloads.js b/web/app/assets/javascripts/web/downloads.js
index 724b67079..68acd1e40 100644
--- a/web/app/assets/javascripts/web/downloads.js
+++ b/web/app/assets/javascripts/web/downloads.js
@@ -70,8 +70,7 @@
var selectOthers = $(context._.template($('#client-download-select-others').html(), options, { variable: 'data' }));
- var systemRequirements = $(context._.template($('#client-download-system-requirements').html(), options, { variable: 'data' }));
-
+
// isolate active images for selectOthers
$('div.hidden-images img[data-purpose=' + platformName1 + ']', selectOthers).remove().appendTo($('a[data-order=1]', selectOthers));
$('div.hidden-images img[data-purpose=' + platformName2 + ']', selectOthers).remove().appendTo($('a[data-order=2]', selectOthers));
@@ -107,7 +106,10 @@
// update the 'download other platforms' buttons
$('body.web .downloads-container').empty().append(selectOthers);
// update system requirements
- $('body.web .system-requirements').empty().append(systemRequirements);
+ if($('#client-download-system-requirements').length){
+ var systemRequirements = $(context._.template($('#client-download-system-requirements').html(), options, { variable: 'data' }));
+ $('body.web .system-requirements').empty().append(systemRequirements);
+ }
$('body.web .system-requirements ul').hide();
$('body.web .system-requirements ul.' + platformName + '-requirements').show();
$('body.web .system-requirements').show();
diff --git a/web/app/controllers/users_controller.rb b/web/app/controllers/users_controller.rb
index 1bdf23178..09e3bd774 100644
--- a/web/app/controllers/users_controller.rb
+++ b/web/app/controllers/users_controller.rb
@@ -23,7 +23,6 @@ class UsersController < ApplicationController
before_filter :is_native_client
before_filter :ip_blacklist, :only => [:create]
-
rescue_from 'JamRuby::PermissionError' do |exception|
@exception = exception
render :file => 'public/403.html', :status => 403, :layout => false
@@ -97,7 +96,7 @@ class UsersController < ApplicationController
@affiliate_partner = load_affiliate_partner(params)
- @signup_postback = load_postback(@invited_user, @fb_signup, @affiliate_partner)
+ @signup_postback = load_postback(@invited_user, @fb_signup, @affiliate_partner, request.path)
load_location(request.remote_ip)
@@ -114,12 +113,11 @@ class UsersController < ApplicationController
@user.gender = @fb_signup.gender
end
- #render :layout => 'web'
- render :layout => 'jk2021'
+ #render :layout => 'jk2021'
+ _render('new')
end
def create
-
if current_user
redirect_to client_url
return
@@ -158,7 +156,7 @@ class UsersController < ApplicationController
@invited_user = load_invited_user(params)
@affiliate_partner = load_affiliate_partner(params)
- @signup_postback = load_postback(@invited_user, @fb_signup, @affiliate_partner)
+ @signup_postback = load_postback(@invited_user, @fb_signup, @affiliate_partner, request.path)
instruments = fixup_instruments(params[:jam_ruby_user][:instruments])
@@ -201,7 +199,8 @@ class UsersController < ApplicationController
gon.signup_errors = true
gon.musician_instruments = instruments
gon.plan_code = desired_plan_code
- render "new", :layout => 'jk2021'
+ #render "new", :layout => 'jk2021'
+ _render('new')
else
sign_in @user
@@ -225,7 +224,8 @@ class UsersController < ApplicationController
def downloads
@no_user_dropdown = true
@page_context = 'standalone'
- render :layout => "jk2021"
+ #render :layout => "jk2021"
+ _render('downloads')
end
# DO NOT USE CURRENT_USER IN THIS ROUTINE UNLESS REDIRECTING. IT'S CACHED FOR THE WHOLE SITE
@@ -439,6 +439,16 @@ JS
private
+ def _render(action)
+ layout_template = case action
+ when 'new'
+ request.path == '/landing/general/signup' ? ['jk2021', 'new2021'] : ['web', 'new']
+ when 'downloads'
+ request.path == '/landing/general/downloads' ? ['jk2021', 'downloads2021'] : ['web', 'downloads']
+ end
+ render layout_template[1], :layout => layout_template[0]
+ end
+
def is_native_client
@nativeClient = is_native_client?
end
@@ -526,15 +536,15 @@ JS
@cities = @location[:state].nil? ? [] : MaxMindManager.cities(@location[:country], @location[:state])
end
- def load_postback(invited_user, fb_signup, affiliate_partner)
+ def load_postback(invited_user, fb_signup, affiliate_partner, request_path)
query = {}
query[:invitation_code] = invited_user.invitation_code if invited_user
query[:facebook_signup] = fb_signup.lookup_id if fb_signup
query[:affiliate_partner_id] = affiliate_partner.id if affiliate_partner
if query.length > 0
- signup_path + "?" + query.to_query
+ request_path + "?" + query.to_query
else
- signup_path
+ request_path
end
end
end
diff --git a/web/app/views/landings/signup.html.erb b/web/app/views/landings/signup.html.erb
new file mode 100644
index 000000000..52067213b
--- /dev/null
+++ b/web/app/views/landings/signup.html.erb
@@ -0,0 +1,211 @@
+<% provide(:page_name, 'register') %>
+<% provide(:title, 'Register') %>
+<% provide(:description, 'Sign up for your JamKazam account to play music with others online in real time and network with musicians.') %>
+<% provide(:hero_title, 'JamKazam has spent the last 6 years building the best platform in the world to let musicians play together live and in sync over the Internet.') %>
+
+
+
+
+ Today tens of thousands of musicians use JamKazam to:
+
+
Rehearse with their bands from home
+
Join open sessions to meet & play with new friends
+
Co-write music live & interactively vs. trading files
+
Record session performances
+
Live broadcast session performances thru YouTube & Facebook
+
+
+
+
Check out some examples of groups playing together on JamKazam:
+
+
+
+
+
+
+
+
Sign up for a free account now and get Gold premium subscription features FREE for 30 days! After 30 days you can continue playing on our free plan or select a premium plan – whatever is right for you. When you sign up, we’ll send you an email with instructions on how to set up and play on the platform.
+ <% if Rails.application.config.recaptcha_enable %>
+
+
+ <% end %>
+
+
+
+
+
+
+
+ <% end %>
+
+
+
+
+<%= content_for(:scripts) do %>
+
+<% end %>
diff --git a/web/app/views/users/_download_templates.html.slim b/web/app/views/users/_download_templates.html.slim
index fe4069570..4a5842374 100644
--- a/web/app/views/users/_download_templates.html.slim
+++ b/web/app/views/users/_download_templates.html.slim
@@ -1,44 +1,48 @@
script type="text/template" id="client-download-blurb-contents"
- .downloads.text-center
+ .downloads
a href="{{data.uri}}" class="current-os-download" data-platform="{{data.platform}}"
+ .downloads-container
+
+ h5 SYSTEM REQUIREMENTS:
+ | {% if(data.platform == "Win32") { %}
+ ul.windows-requirements
+ li Windows 7, 8, or 10 - 64-bit (32-bit not supported)
+ li Dual core processor or higher
+ li 75MB hard disk space for app
+ li External audio interface recommended (but you can start with built-in mic and & headphone jack)
+ li USB 2.0, USB 3.0, Thunderbolt, or Firewire (not USB 1.1) for external audio interfaces
+ li Ethernet port for real-time online sessions (WiFi not recommended)
+ li Broadband Internet service with 1Mbps uplink bandwidth for real-time online sessions
+ | {% } else if(data.platform == "MacOSX") { %}
+ ul.mac-requirements
+ li Mac OS X 10.8 or higher, 64-bit
+ li Dual-core processor or higher
+ li 75MB hard disk space for app
+ li External audio interface recommended (but you can start with built-in mic and & headphone jack)
+ li USB 2.0, USB 3.0, Thunderbolt, or Firewire (not USB 1.1) for external audio interfaces
+ li Ethernet port for real-time online sessions (WiFi not recommended)
+ li Broadband Internet service with 1Mbps uplink bandwidth for real-time online sessions
+ | {% } else { %}
+ ul.linux-requirements
+ li Linux is not yet supported
+ | {% } %}
+
+
+
.hidden.hidden-images
= image_tag("content/button_download_mac.png", :alt => "download mac", :size => "348x92", "data-purpose" => "mac")
= image_tag("content/button_download_windows.png", :alt => "download windows", :size => "348x92", "data-purpose" => "windows")
= image_tag("content/button_download_linux.png", :alt => "download linux", :size => "348x92", "data-purpose" => "linux")
script type="text/template" id="client-download-select-others"
- .download-box.text-center
+ .download-box
.download-others
- | Need a different version?
- br
a.choose-other-platform href="#" data-order="1" data-platform="{{data.platform1}}"
- | Click here to get JamKazam for {{data.platformDisplay1}}
-
-script type="text/template" id="client-download-system-requirements"
- p
- em System Requirements:
- | {% if(data.platform == "Win32") { %}
- ul.windows-requirements
- li Windows 7, 8, or 10 - 64-bit (32-bit not supported)
- li Dual core processor or higher
- li 75MB hard disk space for app
- li External audio interface recommended (but you can start with built-in mic and & headphone jack)
- li USB 2.0, USB 3.0, Thunderbolt, or Firewire (not USB 1.1) for external audio interfaces
- li Ethernet port for real-time online sessions (WiFi not recommended)
- li Broadband Internet service with 1Mbps uplink bandwidth for real-time online sessions
- | {% } else if(data.platform == "MacOSX") { %}
- ul.mac-requirements
- li Mac OS X 10.8 or higher, 64-bit
- li Dual-core processor or higher
- li 75MB hard disk space for app
- li External audio interface recommended (but you can start with built-in mic and & headphone jack)
- li USB 2.0, USB 3.0, Thunderbolt, or Firewire (not USB 1.1) for external audio interfaces
- li Ethernet port for real-time online sessions (WiFi not recommended)
- li Broadband Internet service with 1Mbps uplink bandwidth for real-time online sessions
- | {% } else { %}
- ul.linux-requirements
- li Linux is not yet supported
- | {% } %}
\ No newline at end of file
+ | Need a different version?
+ br
+ | Click here for to get JamKazam
+ br
+ | for {{data.platformDisplay1}} ' ''
\ No newline at end of file
diff --git a/web/app/views/users/_download_templates2021.html.slim b/web/app/views/users/_download_templates2021.html.slim
new file mode 100644
index 000000000..fe4069570
--- /dev/null
+++ b/web/app/views/users/_download_templates2021.html.slim
@@ -0,0 +1,44 @@
+
+script type="text/template" id="client-download-blurb-contents"
+ .downloads.text-center
+
+ a href="{{data.uri}}" class="current-os-download" data-platform="{{data.platform}}"
+
+ .hidden.hidden-images
+ = image_tag("content/button_download_mac.png", :alt => "download mac", :size => "348x92", "data-purpose" => "mac")
+ = image_tag("content/button_download_windows.png", :alt => "download windows", :size => "348x92", "data-purpose" => "windows")
+ = image_tag("content/button_download_linux.png", :alt => "download linux", :size => "348x92", "data-purpose" => "linux")
+
+script type="text/template" id="client-download-select-others"
+ .download-box.text-center
+ .download-others
+ | Need a different version?
+ br
+ a.choose-other-platform href="#" data-order="1" data-platform="{{data.platform1}}"
+ | Click here to get JamKazam for {{data.platformDisplay1}}
+
+script type="text/template" id="client-download-system-requirements"
+ p
+ em System Requirements:
+ | {% if(data.platform == "Win32") { %}
+ ul.windows-requirements
+ li Windows 7, 8, or 10 - 64-bit (32-bit not supported)
+ li Dual core processor or higher
+ li 75MB hard disk space for app
+ li External audio interface recommended (but you can start with built-in mic and & headphone jack)
+ li USB 2.0, USB 3.0, Thunderbolt, or Firewire (not USB 1.1) for external audio interfaces
+ li Ethernet port for real-time online sessions (WiFi not recommended)
+ li Broadband Internet service with 1Mbps uplink bandwidth for real-time online sessions
+ | {% } else if(data.platform == "MacOSX") { %}
+ ul.mac-requirements
+ li Mac OS X 10.8 or higher, 64-bit
+ li Dual-core processor or higher
+ li 75MB hard disk space for app
+ li External audio interface recommended (but you can start with built-in mic and & headphone jack)
+ li USB 2.0, USB 3.0, Thunderbolt, or Firewire (not USB 1.1) for external audio interfaces
+ li Ethernet port for real-time online sessions (WiFi not recommended)
+ li Broadband Internet service with 1Mbps uplink bandwidth for real-time online sessions
+ | {% } else { %}
+ ul.linux-requirements
+ li Linux is not yet supported
+ | {% } %}
\ No newline at end of file
diff --git a/web/app/views/users/_downloads.html.slim b/web/app/views/users/_downloads.html.slim
index f6830873c..934fa1b05 100644
--- a/web/app/views/users/_downloads.html.slim
+++ b/web/app/views/users/_downloads.html.slim
@@ -1,19 +1,64 @@
// used by congrats_musician, and downloads
- provide(:page_name, "downloads #{@page_context}")
-- provide(:hero_title, 'Signup successful! Now download the JamKazam application.')
-.row
- .col-md-7.col-sm-12
- p.click-to-download You need the JamKazam Mac or Windows app to play in online sessions on the JamKazam platform. Click the button below to download the app.
- br
- .downloads-blurb
- br
- .downloads-container
-
- .col-md-1.col-sm-0
- .col-md-4.col-sm-12
- .system-requirements
+.w100.download-container
+ .download-app
+ .spinner-large
-= render "users/download_templates"
+ h2.create-account-header
+ .badge-number 3
+ | Download the free JamKazam app
+
+ .download-content
+ .download-entreaty
+
+ p You need the JamKazam application to:
+ ul
+ li Play music with others in real time on the JamKazam platform
+ li Make audio recordings and share them via Facebook or URL
+ li Make video recordings and share them via YouTube or URL
+ li Live broadcast your sessions to family, friends, and fans
+ li Play and control your JamTracks multi-track recordings
+
+ p.click-to-download Click the button below to download the JamKazam application installer.
+ .downloads-blurb
+
+ .jamtracks
+
+ h2.shop-jamtracks
+ .badge-number 4
+ | Get your free JamTrack
+ span.special-value
+ | ($2.99 value)
+
+
+ .jamtrack-content
+ .jamtrack-entreaty
+
+ p JamTracks are multi-track pro recordings you can use to:
+ ul
+ li Solo any part to hear and learn it
+ li Mute the part you want to play, and play along with the rest
+ li Make audio recordings and share them via Facebook or URL
+ li Make video recordings and share them via YouTube or URL
+ li Go online to play real time sessions, with others playing parts
+ p
+ | Watch the video below to learn more. Then click the button to shop
+ | for your first JamTrack - free! Add it to your shopping cart, and we'll
+ | make it free during the checkout process. Free offer good for 1 week only!
+ .video-container
+ - if !Rails.env.test?
+ iframe src="//www.youtube.com/embed/askHvcCoNfw" frameborder="0" allowfullscreen="allowfullscreen"
+
+ a.go-jamtrack-shopping href="/client#/jamtrack/search" rel="external"
+ | Shop for free
+ br
+ | JamTrack now!
+
+ br clear="all"
+
+
+
+ = render "users/download_templates"
diff --git a/web/app/views/users/_downloads2021.html.slim b/web/app/views/users/_downloads2021.html.slim
new file mode 100644
index 000000000..0712d17e8
--- /dev/null
+++ b/web/app/views/users/_downloads2021.html.slim
@@ -0,0 +1,19 @@
+// used by congrats_musician, and downloads
+- provide(:page_name, "downloads #{@page_context}")
+- provide(:hero_title, 'Signup successful! Now download the JamKazam application.')
+
+.row
+ .col-md-7.col-sm-12
+ p.click-to-download You need the JamKazam Mac or Windows app to play in online sessions on the JamKazam platform. Click the button below to download the app.
+ br
+ .downloads-blurb
+ br
+ .downloads-container
+
+ .col-md-1.col-sm-0
+ .col-md-4.col-sm-12
+ .system-requirements
+
+= render "users/download_templates2021"
+
+
diff --git a/web/app/views/users/_original_downloads.html.slim b/web/app/views/users/_original_downloads.html.slim
deleted file mode 100644
index 934fa1b05..000000000
--- a/web/app/views/users/_original_downloads.html.slim
+++ /dev/null
@@ -1,64 +0,0 @@
-// used by congrats_musician, and downloads
-- provide(:page_name, "downloads #{@page_context}")
-
-.w100.download-container
- .download-app
- .spinner-large
-
- h2.create-account-header
- .badge-number 3
- | Download the free JamKazam app
-
- .download-content
- .download-entreaty
-
- p You need the JamKazam application to:
- ul
- li Play music with others in real time on the JamKazam platform
- li Make audio recordings and share them via Facebook or URL
- li Make video recordings and share them via YouTube or URL
- li Live broadcast your sessions to family, friends, and fans
- li Play and control your JamTracks multi-track recordings
-
- p.click-to-download Click the button below to download the JamKazam application installer.
- .downloads-blurb
-
- .jamtracks
-
- h2.shop-jamtracks
- .badge-number 4
- | Get your free JamTrack
- span.special-value
- | ($2.99 value)
-
-
- .jamtrack-content
- .jamtrack-entreaty
-
- p JamTracks are multi-track pro recordings you can use to:
- ul
- li Solo any part to hear and learn it
- li Mute the part you want to play, and play along with the rest
- li Make audio recordings and share them via Facebook or URL
- li Make video recordings and share them via YouTube or URL
- li Go online to play real time sessions, with others playing parts
- p
- | Watch the video below to learn more. Then click the button to shop
- | for your first JamTrack - free! Add it to your shopping cart, and we'll
- | make it free during the checkout process. Free offer good for 1 week only!
- .video-container
- - if !Rails.env.test?
- iframe src="//www.youtube.com/embed/askHvcCoNfw" frameborder="0" allowfullscreen="allowfullscreen"
-
- a.go-jamtrack-shopping href="/client#/jamtrack/search" rel="external"
- | Shop for free
- br
- | JamTrack now!
-
- br clear="all"
-
-
-
- = render "users/download_templates"
-
-
diff --git a/web/app/views/users/downloads.html.erb b/web/app/views/users/downloads.html.erb
index 70b6d589a..021927b78 100644
--- a/web/app/views/users/downloads.html.erb
+++ b/web/app/views/users/downloads.html.erb
@@ -3,8 +3,6 @@
<%= render "users/downloads" %>
-<%= content_for :scripts do %>
-
-<% end %>
\ No newline at end of file
+
\ No newline at end of file
diff --git a/web/app/views/users/downloads2021.html.erb b/web/app/views/users/downloads2021.html.erb
new file mode 100644
index 000000000..25e9c843b
--- /dev/null
+++ b/web/app/views/users/downloads2021.html.erb
@@ -0,0 +1,10 @@
+<% provide(:title, 'Downloads') %>
+<% provide(:description, 'Download the JamKazam app for Windows or Mac to play music online with others.') %>
+
+<%= render "users/downloads2021" %>
+
+<%= content_for :scripts do %>
+
+<% end %>
\ No newline at end of file
diff --git a/web/app/views/users/new.html.erb b/web/app/views/users/new.html.erb
index 52067213b..262a0504b 100644
--- a/web/app/views/users/new.html.erb
+++ b/web/app/views/users/new.html.erb
@@ -1,99 +1,129 @@
<% provide(:page_name, 'register') %>
<% provide(:title, 'Register') %>
<% provide(:description, 'Sign up for your JamKazam account to play music with others online in real time and network with musicians.') %>
-<% provide(:hero_title, 'JamKazam has spent the last 6 years building the best platform in the world to let musicians play together live and in sync over the Internet.') %>
-
-
-
-
- Today tens of thousands of musicians use JamKazam to:
-
-
Rehearse with their bands from home
-
Join open sessions to meet & play with new friends
-
Co-write music live & interactively vs. trading files
-
Record session performances
-
Live broadcast session performances thru YouTube & Facebook
-
-
-
Check out some examples of groups playing together on JamKazam:
Sign up for a free account now and get Gold premium subscription features FREE for 30 days! After 30 days you can continue playing on our free plan or select a premium plan – whatever is right for you. When you sign up, we’ll send you an email with instructions on how to set up and play on the platform.
+
+ <%= f.check_box :terms_of_service %>
+ I have read and agree to the JamKazam <%= link_to "terms of service", corp_terms_path, :rel => "external" %>
+ .
+
+
+
+
+ <% if Rails.application.config.recaptcha_enable %>
New users have access to the Gold plan free for the first 30 days. The plan you select will take effect after the first 30-day trial period. Taxes apply to all non-free plans.
+
+
+
+
+
+
+
-<%= content_for(:scripts) do %>
-<% end %>
+
+
diff --git a/web/app/views/users/new2021.html.erb b/web/app/views/users/new2021.html.erb
new file mode 100644
index 000000000..52067213b
--- /dev/null
+++ b/web/app/views/users/new2021.html.erb
@@ -0,0 +1,211 @@
+<% provide(:page_name, 'register') %>
+<% provide(:title, 'Register') %>
+<% provide(:description, 'Sign up for your JamKazam account to play music with others online in real time and network with musicians.') %>
+<% provide(:hero_title, 'JamKazam has spent the last 6 years building the best platform in the world to let musicians play together live and in sync over the Internet.') %>
+
+
+
+
+ Today tens of thousands of musicians use JamKazam to:
+
+
Rehearse with their bands from home
+
Join open sessions to meet & play with new friends
+
Co-write music live & interactively vs. trading files
+
Record session performances
+
Live broadcast session performances thru YouTube & Facebook
+
+
+
+
Check out some examples of groups playing together on JamKazam:
+
+
+
+
+
+
+
+
Sign up for a free account now and get Gold premium subscription features FREE for 30 days! After 30 days you can continue playing on our free plan or select a premium plan – whatever is right for you. When you sign up, we’ll send you an email with instructions on how to set up and play on the platform.
+ <% if Rails.application.config.recaptcha_enable %>
+
+
+ <% end %>
+
+
+
+
+
+
+
+ <% end %>
+
+
+
+
+<%= content_for(:scripts) do %>
+
+<% end %>
diff --git a/web/app/views/users/original_downloads.html.erb b/web/app/views/users/original_downloads.html.erb
deleted file mode 100644
index 021927b78..000000000
--- a/web/app/views/users/original_downloads.html.erb
+++ /dev/null
@@ -1,8 +0,0 @@
-<% provide(:title, 'Downloads') %>
-<% provide(:description, 'Download the JamKazam app for Windows or Mac to play music online with others.') %>
-
-<%= render "users/downloads" %>
-
-
\ No newline at end of file
diff --git a/web/app/views/users/original_signup.html.erb b/web/app/views/users/original_signup.html.erb
deleted file mode 100644
index 262a0504b..000000000
--- a/web/app/views/users/original_signup.html.erb
+++ /dev/null
@@ -1,241 +0,0 @@
-<% provide(:page_name, 'register') %>
-<% provide(:title, 'Register') %>
-<% provide(:description, 'Sign up for your JamKazam account to play music with others online in real time and network with musicians.') %>
-
-
-
- <%= f.check_box :terms_of_service %>
- I have read and agree to the JamKazam <%= link_to "terms of service", corp_terms_path, :rel => "external" %>
- .
-
-
-
-
- <% if Rails.application.config.recaptcha_enable %>
-
New users have access to the Gold plan free for the first 30 days. The plan you select will take effect after the first 30-day trial period. Taxes apply to all non-free plans.
-
-
-
-
-
-
-
-
-
-
diff --git a/web/config/routes.rb b/web/config/routes.rb
index 8e08735c0..33762d0e0 100644
--- a/web/config/routes.rb
+++ b/web/config/routes.rb
@@ -70,6 +70,10 @@ Rails.application.routes.draw do
#get '/landing/jamclass/education', to: 'landings#jam_class_education', as: 'jam_class_education'
#get '/landing/jamclass/retailers', to: 'landings#jam_class_retailers', as: 'jam_class_retailers'
+ get '/landing/general/signup', to: "users#new"
+ post '/landing/general/signup', to: "users#create"
+ get '/landing/general/downloads', to: "users#downloads"
+
get '/affiliateProgram', to: 'landings#affiliate_program', as: 'affiliate_program'
get '/affiliate/links/:id', to: 'affiliates#links', as: 'affilate_links'
diff --git a/web/spec/features/download_spec.rb b/web/spec/features/download_spec.rb
index f6762bfbf..55085c01c 100644
--- a/web/spec/features/download_spec.rb
+++ b/web/spec/features/download_spec.rb
@@ -23,12 +23,11 @@ describe "Download", :js => true, :type => :feature, :capybara_feature => true
end
- describe "downloads-page" do
-
+ shared_examples :dowload_client do
# there is also a generic download pages
before(:each) do
- sign_in_poltergeist user
- visit '/downloads'
+ #sign_in_poltergeist user
+ visit path
# put the user on Windows to start
detected_os = find("a.current-os-download")['data-platform']
@@ -51,7 +50,45 @@ describe "Download", :js => true, :type => :feature, :capybara_feature => true
find(".download-others a[data-platform='#{remaining_platform}']").click
find("a.current-os-download")['data-platform'].should == remaining_platform
end
+ end
+
+ describe "goto downloads-page without signin" do
+
+ describe :default_downloads_page do
+ it_behaves_like :dowload_client do
+ let(:path){ "/downloads" }
+ end
+ it "renders web layout" do
+ visit "/downloads"
+ end
+ end
+
+ describe :landing_downloads_page do
+ it_behaves_like :dowload_client do
+ let(:path){ "/landing/general/downloads" }
+ end
+ end
end
+
+ # describe "signin and goto downloads-page" do
+ # before(:each) do
+ # sign_in_poltergeist user
+ # end
+
+ # describe :default_downloads_page do
+ # it_behaves_like :dowload_client do
+ # let(:path){ "/downloads" }
+ # end
+ # end
+
+ # describe :landing_downloads_page do
+ # it_behaves_like :dowload_client do
+ # let(:path){ "/landing/general/downloads" }
+ # end
+ # end
+
+ # end
+
end
end
diff --git a/web/spec/features/signup_spec.rb b/web/spec/features/signup_spec.rb
index 3945f92c8..6112c60f1 100644
--- a/web/spec/features/signup_spec.rb
+++ b/web/spec/features/signup_spec.rb
@@ -19,252 +19,440 @@ describe "Signup", :js => true, :type => :feature, :capybara_feature => true do
MaxMindManager.create_phony_database
end
- describe "with origin", focus: true do
-
- # Successful signup with no invitation tells you to go sign up
- it {
- visit "/signup?utm_source=abc&utm_medium=ads&utm_campaign=campaign1"
- fill_in "jam_ruby_user[first_name]", with: "Mike"
- fill_in "jam_ruby_user[last_name]", with: "Jones"
- fill_in "jam_ruby_user[email]", with: "withorigin1@jamkazam.com"
- fill_in "jam_ruby_user[password]", with: "jam123"
- fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
-
- check("jam_ruby_user[terms_of_service]")
- click_button "Sign Up for JamKazam"
- should have_title("JamKazam | Congratulations")
- should have_content("Your account is ready.")
- user = User.find_by_email('withorigin1@jamkazam.com')
- user.musician_instruments.length.should == 1
- location = GeoIpLocations.lookup('127.0.0.1')
- user.country.should == location[:country]
- user.state.should == location[:state]
- user.city.should == location[:city]
- # an email is sent on no-invite signup
- user.origin_utm_source.should eql 'abc'
- user.origin_utm_campaign.should eql 'campaign1'
- user.origin_utm_medium.should eql 'ads'
- user.origin_referrer.should be_nil
- }
- end
-
- describe "signup page" do
- before { visit signup_path }
-
- it "should initialize successfully" do
- should have_selector('div.main', text: 'JamKazam has spent the last 6 years building the best platform in the world to let musicians play together live and in sync over the Internet.')
- end
-
- describe "with valid musician information" do
- before do
- fill_in "jam_ruby_user[first_name]", with: "Mike"
- fill_in "jam_ruby_user[last_name]", with: "Jones"
- fill_in "jam_ruby_user[email]", with: "newuser1@jamkazam.com"
- fill_in "jam_ruby_user[password]", with: "jam123"
- fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
-
- check("jam_ruby_user[terms_of_service]")
- click_button "Sign Up for JamKazam"
+ shared_examples_for :signup_with_origin do
+
+ describe "with origin" do
+
+ before(:each) do
+ User.delete_all
end
# Successful signup with no invitation tells you to go sign up
it {
- should have_title("JamKazam | Congratulations")
- should have_content("Your account is ready.")
- user = User.find_by_email('newuser1@jamkazam.com')
- user.musician?.should == true
- user.musician_instruments.length.should == 1
- location = GeoIpLocations.lookup('127.0.0.1')
- user.country.should == location[:country]
- user.state.should == location[:state]
- user.city.should == location[:city]
- # an email is sent on no-invite signup
- UserMailer.deliveries.length.should == 2
- UserMailer.deliveries[0].html_part.body.include?("To confirm this email address")== 1
- }
-
- describe "user can confirm email and receive welcome email" do
-
- before(:each) do
- UserMailer.deliveries.clear
- visit signup_confirm_path(User.find_by_email('newuser1@jamkazam.com').signup_token)
- end
-
- it {
- should have_title("Signup Confirmation")
- should have_selector('h1', text: "Email Confirmed")
- }
- end
- end
-
- describe "with service invite" do
- before do
- @invited_user = FactoryGirl.create(:invited_user, :email => "noone@jamkazam.com", :sender => FactoryGirl.create(:user))
- visit "#{signup_path}?invitation_code=#{@invited_user.invitation_code}"
- find('#jam_ruby_user_first_name')
- sleep 1 # if I don't do this, first_name and/or last name intermittently fail to fill out
-
- UserMailer.deliveries.clear
-
- fill_in "jam_ruby_user[first_name]", with: "Mike"
- fill_in "jam_ruby_user[last_name]", with: "Jones"
- fill_in "jam_ruby_user[email]", with: "newuser2@jamkazam.com"
- fill_in "jam_ruby_user[password]", with: "jam123"
- fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
-
- check("jam_ruby_user[terms_of_service]")
- click_button "Sign Up for JamKazam"
- end
-
- # Successful sign-in goes to the client
- it {
- should have_title("JamKazam")
- should have_selector('.flash-content', text: "Soon you can play with #{@invited_user.sender.name}")
- UserMailer.deliveries.length.should == 2
- uri = URI.parse(current_url)
- "#{uri.path}?#{uri.query}".should == congratulations_musician_path(:friend => @invited_user.sender.name)
- }
- end
-
- describe "with user invite and autofriend" do
- before do
- @user = FactoryGirl.create(:user)
- @invited_user = FactoryGirl.create(:invited_user, :sender => @user, :autofriend => true, :email => "noone@jamkazam.com")
- visit "#{signup_path}?invitation_code=#{@invited_user.invitation_code}"
- find('#jam_ruby_user_first_name')
- sleep 1 # if I don't do this, first_name and/or last name intermittently fail to fill out
-
+ #visit "/signup?utm_source=abc&utm_medium=ads&utm_campaign=campaign1"
fill_in "jam_ruby_user[first_name]", with: "Mike"
fill_in "jam_ruby_user[last_name]", with: "Jones"
- fill_in "jam_ruby_user[email]", with: "newuser3@jamkazam.com"
+ fill_in "jam_ruby_user[email]", with: "withorigin1@jamkazam.com"
fill_in "jam_ruby_user[password]", with: "jam123"
fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
check("jam_ruby_user[terms_of_service]")
- click_button "Sign Up for JamKazam"
- end
-
- # Successful sign-in goes to the client
- it {
- should have_title("JamKazam")
- should have_selector('.flash-content', text: "Soon you can play with #{@invited_user.sender.name}")
- @user.friends?(User.find_by_email("newuser3@jamkazam.com"))
- User.find_by_email("newuser3@jamkazam.com").friends?(@user)
- uri = URI.parse(current_url)
- "#{uri.path}?#{uri.query}".should == congratulations_musician_path(:friend => @invited_user.sender.name)
+ #click_button "CREATE ACCOUNT"
+ #click_button "Sign Up for JamKazam"
+ find("#create-account-submit").click
+ should have_title("JamKazam | Congratulations")
+ should have_content("Your account is ready.")
+ user = User.find_by_email('withorigin1@jamkazam.com')
+ user.musician_instruments.length.should == 1
+ location = GeoIpLocations.lookup('127.0.0.1')
+ user.country.should == location[:country]
+ user.state.should == location[:state]
+ user.city.should == location[:city]
+ # an email is sent on no-invite signup
+ user.origin_utm_source.should eql 'abc'
+ user.origin_utm_campaign.should eql 'campaign1'
+ user.origin_utm_medium.should eql 'ads'
+ user.origin_referrer.should be_nil
}
end
+ end
+ shared_examples :page_load_success do
+ it "should initialize successfully" do
+ expect(page).to have_title "JamKazam | Register"
+ end
+ end
- def signup_invited_user
- visit "#{signup_path}?invitation_code=#{@invited_user.invitation_code}"
+ shared_examples :default_signup_page do
+ it "has default signup page content" do
+ should have_content(/Live music platform/)
+ end
+ end
+
+ shared_examples :landing_signup_page do
+ it "has landing signup page content" do
+ should have_content(/JamKazam has spent the last 6 years/)
+ end
+ end
+
+ shared_examples :submit_signup_form do
+
+ before do
+ fill_in "jam_ruby_user[first_name]", with: "Mike"
+ fill_in "jam_ruby_user[last_name]", with: "Jones"
+ fill_in "jam_ruby_user[email]", with: "newuser1@jamkazam.com"
+ fill_in "jam_ruby_user[password]", with: "jam123"
+ fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
+
+ check("jam_ruby_user[terms_of_service]")
+ #click_button "Sign Up for JamKazam"
+ find("#create-account-submit").click
+ end
+
+ # Successful signup with no invitation tells you to go sign up
+ it {
+ should have_title("JamKazam | Congratulations")
+ should have_content("Your account is ready.")
+ user = User.find_by_email('newuser1@jamkazam.com')
+ user.musician?.should == true
+ user.musician_instruments.length.should == 1
+ location = GeoIpLocations.lookup('127.0.0.1')
+ user.country.should == location[:country]
+ user.state.should == location[:state]
+ user.city.should == location[:city]
+ # an email is sent on no-invite signup
+ UserMailer.deliveries.length.should == 2
+ UserMailer.deliveries[0].html_part.body.include?("To confirm this email address")== 1
+ }
+
+ describe "user can confirm email and receive welcome email" do
+
+ before(:each) do
+ UserMailer.deliveries.clear
+ visit signup_confirm_path(User.find_by_email('newuser1@jamkazam.com').signup_token)
+ end
+
+ it {
+ should have_title("Signup Confirmation")
+ should have_selector('h1', text: "Email Confirmed")
+ }
+ end
+
+ end
+
+ shared_examples :submit_signup_form_with_errors do
+
+ before do
+ #submit without filling the form
+ find("#create-account-submit").click
+ end
+
+ # Successful signup with no invitation tells you to go sign up
+ it {
+ should_not have_title("JamKazam | Congratulations")
+ }
+
+ end
+
+ shared_examples :with_user_invite do
+
+ let(:invited_user) { FactoryGirl.create(:invited_user, :email => "noone@jamkazam.com", :sender => FactoryGirl.create(:user)) }
+ before do
+ visit "#{path}?invitation_code=#{invited_user.invitation_code}"
+ find('#jam_ruby_user_first_name')
+ sleep 1 # if I don't do this, first_name and/or last name intermittently fail to fill out
+
+ UserMailer.deliveries.clear
+
+ fill_in "jam_ruby_user[first_name]", with: "Mike"
+ fill_in "jam_ruby_user[last_name]", with: "Jones"
+ fill_in "jam_ruby_user[email]", with: "newuser2@jamkazam.com"
+ fill_in "jam_ruby_user[password]", with: "jam123"
+ fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
+
+ check("jam_ruby_user[terms_of_service]")
+ #click_button "Sign Up for JamKazam"
+ find("#create-account-submit").click
+ end
+
+ # Successful sign-in goes to the client
+ it {
+ should have_title("JamKazam")
+ should have_selector('.flash-content', text: "Soon you can play with #{invited_user.sender.name}")
+ UserMailer.deliveries.length.should == 2
+ uri = URI.parse(current_url)
+ "#{uri.path}?#{uri.query}".should == congratulations_musician_path(:friend => invited_user.sender.name)
+ }
+
+ end
+
+ shared_examples :with_user_invite_and_autofriend do
+
+ before(:each) do
+ User.destroy_all
+ InvitedUser.destroy_all
+ @user = FactoryGirl.create(:user)
+ @invited_user = FactoryGirl.create(:invited_user, :sender => @user, :autofriend => true, :email => "noone@jamkazam.com")
+
+
+ visit "#{path}?invitation_code=#{@invited_user.invitation_code}"
find('#jam_ruby_user_first_name')
sleep 1 # if I don't do this, first_name and/or last name intermittently fail to fill out
fill_in "jam_ruby_user[first_name]", with: "Mike"
fill_in "jam_ruby_user[last_name]", with: "Jones"
- @invited_user_email = "newuser#{rand(10000)}@jamkazam.com"
- fill_in "jam_ruby_user[email]", with: @invited_user_email
+ fill_in "jam_ruby_user[email]", with: "newuser3@jamkazam.com"
fill_in "jam_ruby_user[password]", with: "jam123"
fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
check("jam_ruby_user[terms_of_service]")
- click_button "Sign Up for JamKazam"
- end
-
- describe "can signup with an email different than the one used to invite" do
- before do
- @invited_user = FactoryGirl.create(:invited_user, :email => "what@jamkazam.com", :sender => FactoryGirl.create(:user))
- visit "#{signup_path}?invitation_code=#{@invited_user.invitation_code}"
- find('#jam_ruby_user_first_name')
- sleep 1 # if I don't do this, first_name and/or last name intermittently fail to fill out
-
- UserMailer.deliveries.clear
-
- fill_in "jam_ruby_user[first_name]", with: "Mike"
- fill_in "jam_ruby_user[last_name]", with: "Jones"
- fill_in "jam_ruby_user[email]", with: "newuser5@jamkazam.com"
- fill_in "jam_ruby_user[password]", with: "jam123"
- fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
-
- check("jam_ruby_user[terms_of_service]")
- click_button "Sign Up for JamKazam"
- end
-
- it {
- should have_title("JamKazam | Congratulations")
- should have_selector('.flash-content', text: "Soon you can play with #{@invited_user.sender.name}")
- User.find_by_email('newuser5@jamkazam.com').musician_instruments.length.should == 1
- User.find_by_email('what@jamkazam.com').should be_nil
- # an email is sent when you invite but use a different email than the one used to invite
- UserMailer.deliveries.length.should == 2
- uri = URI.parse(current_url)
- "#{uri.path}?#{uri.query}".should == congratulations_musician_path(:friend => @invited_user.sender.name)
- sign_out
- }
- end
-
- describe "signup_hints" do
- it "redirects to custom location on matched signup_hint" do
-
- # causes anon cookie to show
- visit '/'
- find('h2', text: 'Play music live and in sync with others from different locations')
-
- # get a anonymous cookie set up
- anon_user_id = get_me_the_cookie("user_uuid")
- puts "#ANON_USER_ID #{anon_user_id.inspect}"
- anon_user = AnonymousUser.new(anon_user_id[:value], {})
- SignupHint.refresh_by_anoymous_user(anon_user, {redirect_location: '/affiliateProgram'})
-
- visit signup_path
-
- fill_in "jam_ruby_user[first_name]", with: "Mike"
- fill_in "jam_ruby_user[last_name]", with: "Jones"
- fill_in "jam_ruby_user[email]", with: "signup_hint_guy@jamkazam.com"
- fill_in "jam_ruby_user[password]", with: "jam123"
- fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
-
- check("jam_ruby_user[terms_of_service]")
- click_button "Sign Up for JamKazam"
-
- find('h1', text:'JamKazam Affiliate Program')
-
- user = User.find_by_email('signup_hint_guy@jamkazam.com')
- user.should_not be_nil
- end
-
- it "ignores expired_at signup_hint" do
-
- # causes anon cookie to show
- visit '/'
- find('h2', text: 'Play music live and in sync with others from different locations')
-
- # get a anonymous cookie set up
- anon_user_id = get_me_the_cookie("user_uuid")
- anon_user = AnonymousUser.new(anon_user_id[:value], {})
- hint = SignupHint.refresh_by_anoymous_user(anon_user, {redirect_location: '/products/jamblaster', want_jamblaster: true})
- hint.expires_at = 1.day.ago
- hint.save!
-
- visit signup_path
-
- fill_in "jam_ruby_user[first_name]", with: "Mike"
- fill_in "jam_ruby_user[last_name]", with: "Jones"
- fill_in "jam_ruby_user[email]", with: "signup_hint_guy2@jamkazam.com"
- fill_in "jam_ruby_user[password]", with: "jam123"
- fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
-
- check("jam_ruby_user[terms_of_service]")
- click_button "Sign Up for JamKazam"
-
- should have_title("JamKazam | Congratulations")
-
- user = User.find_by_email('signup_hint_guy2@jamkazam.com')
- user.want_jamblaster.should be false
- end
+ #click_button "Sign Up for JamKazam"
+ find("#create-account-submit").click
end
+ # Successful sign-in goes to the client
+ it {
+ should have_title("JamKazam")
+ should have_selector('.flash-content', text: "Soon you can play with #{@invited_user.sender.name}")
+ @user.friends?(User.find_by_email("newuser3@jamkazam.com"))
+ User.find_by_email("newuser3@jamkazam.com").friends?(@user)
+ uri = URI.parse(current_url)
+ "#{uri.path}?#{uri.query}".should == congratulations_musician_path(:friend => @invited_user.sender.name)
+ }
end
+ shared_examples :with_different_email do
+ let(:invited_user) { FactoryGirl.create(:invited_user, :email => "what@jamkazam.com", :sender => FactoryGirl.create(:user)) }
+ before do
+
+ visit "#{path}?invitation_code=#{invited_user.invitation_code}"
+ find('#jam_ruby_user_first_name')
+ sleep 1 # if I don't do this, first_name and/or last name intermittently fail to fill out
+
+ UserMailer.deliveries.clear
+
+ fill_in "jam_ruby_user[first_name]", with: "Mike"
+ fill_in "jam_ruby_user[last_name]", with: "Jones"
+ fill_in "jam_ruby_user[email]", with: "newuser5@jamkazam.com"
+ fill_in "jam_ruby_user[password]", with: "jam123"
+ fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
+
+ check("jam_ruby_user[terms_of_service]")
+ #click_button "Sign Up for JamKazam"
+ find("#create-account-submit").click
+ end
+
+ it {
+ should have_title("JamKazam | Congratulations")
+ should have_selector('.flash-content', text: "Soon you can play with #{invited_user.sender.name}")
+ User.find_by_email('newuser5@jamkazam.com').musician_instruments.length.should == 1
+ User.find_by_email('what@jamkazam.com').should be_nil
+ # an email is sent when you invite but use a different email than the one used to invite
+ UserMailer.deliveries.length.should == 2
+ uri = URI.parse(current_url)
+ "#{uri.path}?#{uri.query}".should == congratulations_musician_path(:friend => invited_user.sender.name)
+ sign_out
+ }
+ end
+
+ shared_examples :signup_hints do
+ it "redirects to custom location on matched signup_hint" do
+ # causes anon cookie to show
+ visit '/'
+ find('h2', text: 'Play music live and in sync with others from different locations')
+
+ # get a anonymous cookie set up
+ anon_user_id = get_me_the_cookie("user_uuid")
+ puts "#ANON_USER_ID #{anon_user_id.inspect}"
+ anon_user = AnonymousUser.new(anon_user_id[:value], {})
+ SignupHint.refresh_by_anoymous_user(anon_user, {redirect_location: '/affiliateProgram'})
+
+ visit path
+
+ fill_in "jam_ruby_user[first_name]", with: "Mike"
+ fill_in "jam_ruby_user[last_name]", with: "Jones"
+ fill_in "jam_ruby_user[email]", with: "signup_hint_guy@jamkazam.com"
+ fill_in "jam_ruby_user[password]", with: "jam123"
+ fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
+
+ check("jam_ruby_user[terms_of_service]")
+ #click_button "Sign Up for JamKazam"
+ find("#create-account-submit").click
+
+ find('h1', text:'JamKazam Affiliate Program')
+
+ user = User.find_by_email('signup_hint_guy@jamkazam.com')
+ user.should_not be_nil
+ end
+
+ it "ignores expired_at signup_hint" do
+
+ # causes anon cookie to show
+ visit '/'
+ find('h2', text: 'Play music live and in sync with others from different locations')
+
+ # get a anonymous cookie set up
+ anon_user_id = get_me_the_cookie("user_uuid")
+ anon_user = AnonymousUser.new(anon_user_id[:value], {})
+ hint = SignupHint.refresh_by_anoymous_user(anon_user, {redirect_location: '/products/jamblaster', want_jamblaster: true})
+ hint.expires_at = 1.day.ago
+ hint.save!
+
+ visit path
+
+ fill_in "jam_ruby_user[first_name]", with: "Mike"
+ fill_in "jam_ruby_user[last_name]", with: "Jones"
+ fill_in "jam_ruby_user[email]", with: "signup_hint_guy2@jamkazam.com"
+ fill_in "jam_ruby_user[password]", with: "jam123"
+ fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
+
+ check("jam_ruby_user[terms_of_service]")
+ #click_button "Sign Up for JamKazam"
+ find("#create-account-submit").click
+
+ should have_title("JamKazam | Congratulations")
+
+ user = User.find_by_email('signup_hint_guy2@jamkazam.com')
+ user.want_jamblaster.should be false
+ end
+ end
+
+ describe "with origin" do
+ describe :default_signup do
+ before do
+ visit "/signup?utm_source=abc&utm_medium=ads&utm_campaign=campaign1"
+ end
+ it_behaves_like :signup_with_origin
+ it_behaves_like :default_signup_page
+ end
+
+ describe :landing_signup do
+ before do
+ visit "/landing/general/signup?utm_source=abc&utm_medium=ads&utm_campaign=campaign1"
+ end
+ it_behaves_like :signup_with_origin
+ it_behaves_like :landing_signup_page
+ end
+ end
+
+ describe "signup form" do
+ before(:each) do
+ User.destroy_all
+ end
+
+ describe :default_signup do
+ before do
+ visit signup_path
+ end
+ it_behaves_like :page_load_success
+ it_behaves_like :submit_signup_form
+ it_behaves_like :default_signup_page
+ end
+
+ describe :landing_signup do
+ before do
+ visit "/landing/general/signup"
+ end
+ it_behaves_like :page_load_success
+ it_behaves_like :submit_signup_form
+ it_behaves_like :landing_signup_page
+ end
+ end
+
+ describe "signup form with errors" do
+ before(:each) do
+ User.destroy_all
+ end
+
+ describe :default_signup do
+ before do
+ visit signup_path
+ end
+ it_behaves_like :page_load_success
+ it_behaves_like :submit_signup_form_with_errors
+ it_behaves_like :default_signup_page
+ end
+
+ describe :landing_signup do
+ before do
+ visit "/landing/general/signup"
+ end
+ it_behaves_like :page_load_success
+ it_behaves_like :submit_signup_form_with_errors
+ it_behaves_like :landing_signup_page
+ end
+ end
+
+ describe "with user invite" do
+
+ before(:each) do
+ User.destroy_all
+ end
+
+ describe :default_signup do
+ it_behaves_like :with_user_invite do
+ let(:path){ "/signup" }
+ end
+ end
+
+ describe :landing_signup do
+ it_behaves_like :with_user_invite do
+ let(:path){ "/landing/general/signup" }
+ end
+ end
+ end
+
+ describe "with user invite and autofriend" do
+
+ describe :default_signup do
+ it_behaves_like :with_user_invite_and_autofriend do
+ let(:path){ "/signup" }
+ end
+ end
+
+ describe :landing_signup do
+ it_behaves_like :with_user_invite_and_autofriend do
+ let(:path){ "/landing/general/signup" }
+ end
+ end
+ end
+
+ describe "can signup with an email different than the one used to invite" do
+ before(:each) do
+ User.destroy_all
+ end
+
+ describe :default_signup do
+ it_behaves_like :with_different_email do
+ let(:path){ "/signup" }
+ end
+
+ end
+
+ describe :landing_signup do
+ it_behaves_like :with_different_email do
+ let(:path){ "/landing/general/signup" }
+ end
+
+ end
+ end
+
+ describe "signup_hints" do
+ before(:each) do
+ User.destroy_all
+ end
+
+ describe :default_signup do
+ it_behaves_like :signup_hints do
+ let(:path){ "/signup" }
+ end
+
+ end
+
+ describe :landing_signup do
+ it_behaves_like :signup_hints do
+ let(:path){ "/landing/general/signup" }
+ end
+
+ end
+ end
+
+ # def signup_invited_user
+ # visit "#{signup_path}?invitation_code=#{@invited_user.invitation_code}"
+ # find('#jam_ruby_user_first_name')
+ # sleep 1 # if I don't do this, first_name and/or last name intermittently fail to fill out
+
+ # fill_in "jam_ruby_user[first_name]", with: "Mike"
+ # fill_in "jam_ruby_user[last_name]", with: "Jones"
+ # @invited_user_email = "newuser#{rand(10000)}@jamkazam.com"
+ # fill_in "jam_ruby_user[email]", with: @invited_user_email
+ # fill_in "jam_ruby_user[password]", with: "jam123"
+ # fill_in "jam_ruby_user[password_confirmation]", with: "jam123"
+
+ # check("jam_ruby_user[terms_of_service]")
+ # #click_button "Sign Up for JamKazam"
+ # find("#create-account-submit").click
+ # end
+
+
end