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: + + +

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.

+ + <%= errors_for @user %> + <%= form_for(@user, :url => @signup_postback, :method => :post, html: { id: 'signup' }) do |f| %> + +
+
+ <%= f.label :first_name, "First Name:" %> + <%= f.text_field :first_name %> +
+
+ <%= f.label :last_name, "Last Name:" %> + <%= f.text_field :last_name %> +
+
+
+
+ <%= f.label :email, "Email Address:" %> + <%= f.text_field :email %> +
+
+
+
+ <%= f.label :password, "Choose a Password:" %> + <%= f.password_field :password %> +
+
+
+
+ <%= f.label :password_confirmation, "Verify Password:" %> + <%= f.password_field :password_confirmation %> +
+
+
+
+ <%= f.check_box :terms_of_service %> +
+
+
+
+ <% 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: - - -

Check out some examples of groups playing together on JamKazam:

- - -
+
+ + <%= form_for(@user, :url => @signup_postback, :method => :post) do |f| %> + +
+ + -
- -

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.

- - <%= errors_for @user %> - <%= form_for(@user, :url => @signup_postback, :method => :post, html: { id: 'signup' }) do |f| %> - -
-
- <%= f.label :first_name, "First Name:" %> - <%= f.text_field :first_name %> -
-
- <%= f.label :last_name, "Last Name:" %> - <%= f.text_field :last_name %> -
-
-
-
- <%= f.label :email, "Email Address:" %> - <%= f.text_field :email %> -
-
-
-
- <%= f.label :password, "Choose a Password:" %> - <%= f.password_field :password %> -
-
-
-
- <%= f.label :password_confirmation, "Verify Password:" %> - <%= f.password_field :password_confirmation %> -
-
-
-
- <%= f.check_box :terms_of_service %> -
-
-
-
- <% if Rails.application.config.recaptcha_enable %> +
+
+ Register as a: + <%= f.radio_button :musician, true, :class => "register-as register-musician" %> + Musician + + <%= f.radio_button :musician, false, :class => "register-as register-fan" %> + Fan +
+ +
+ <%= f.label :first_name, "First Name:" %> + <%= f.text_field :first_name %> +
+ +
+ <%= f.label :last_name, "Last Name:" %> + <%= f.text_field :last_name %> +
+ + + + + +
+ <%= f.label :password, "Choose a Password:" %> + <%= f.password_field :password %> +
+ +
+ <%= f.label :password_confirmation, "Verify Password:" %> + <%= f.password_field :password_confirmation %> +
+ + +
+ + <%= 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 %>
<% end %> -
-
-
-

- -
-
- <% end %> - -
-
+
+ +
+
+
+
+

2
Select your subscription plan

+ +
+
+ <%= f.radio_button :desired_plan_code, '', :checked => true %> + +
+
+ <%= f.radio_button :desired_plan_code, 'jamsubsilver'%> + +
+
+ <%= f.radio_button :desired_plan_code, 'jamsubgold' %> + +
+
+ <%= f.radio_button :desired_plan_code, 'jamsubplatinum'%> + +
+ +
+ compare plans +
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.
+
+ +
+ <%= f.submit "CREATE ACCOUNT", class: "button-orange disabled", id:"create-account-submit"%> + <%= link_to "CANCEL", root_path, :class=>'button-grey' %> +
+ +
+ +
+ + <% end %> + +
+ + + + + + + -<%= 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: + + +

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.

+ + <%= errors_for @user %> + <%= form_for(@user, :url => @signup_postback, :method => :post, html: { id: 'signup' }) do |f| %> + +
+
+ <%= f.label :first_name, "First Name:" %> + <%= f.text_field :first_name %> +
+
+ <%= f.label :last_name, "Last Name:" %> + <%= f.text_field :last_name %> +
+
+
+
+ <%= f.label :email, "Email Address:" %> + <%= f.text_field :email %> +
+
+
+
+ <%= f.label :password, "Choose a Password:" %> + <%= f.password_field :password %> +
+
+
+
+ <%= f.label :password_confirmation, "Verify Password:" %> + <%= f.password_field :password_confirmation %> +
+
+
+
+ <%= f.check_box :terms_of_service %> +
+
+
+
+ <% 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.') %> - -
- - <%= form_for(@user, :url => @signup_postback, :method => :post) do |f| %> - -
- - - - -
-
- Register as a: - <%= f.radio_button :musician, true, :class => "register-as register-musician" %> - Musician - - <%= f.radio_button :musician, false, :class => "register-as register-fan" %> - Fan -
- -
- <%= f.label :first_name, "First Name:" %> - <%= f.text_field :first_name %> -
- -
- <%= f.label :last_name, "Last Name:" %> - <%= f.text_field :last_name %> -
- - - - - -
- <%= f.label :password, "Choose a Password:" %> - <%= f.password_field :password %> -
- -
- <%= f.label :password_confirmation, "Verify Password:" %> - <%= f.password_field :password_confirmation %> -
- - -
- - <%= 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 %> -
-
- <% end %> -
- -
-
-
-
-

2
Select your subscription plan

- -
-
- <%= f.radio_button :desired_plan_code, '', :checked => true %> - -
-
- <%= f.radio_button :desired_plan_code, 'jamsubsilver'%> - -
-
- <%= f.radio_button :desired_plan_code, 'jamsubgold' %> - -
-
- <%= f.radio_button :desired_plan_code, 'jamsubplatinum'%> - -
- -
- compare plans -
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.
-
- -
- <%= f.submit "CREATE ACCOUNT", class: "button-orange disabled", id:"create-account-submit"%> - <%= link_to "CANCEL", root_path, :class=>'button-grey' %> -
- -
- -
- - <% end %> - -
- - - - - - - - - - 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