diff --git a/ruby/lib/jam_ruby/models/jam_track_right.rb b/ruby/lib/jam_ruby/models/jam_track_right.rb
index 98ea69a51..5f919c13b 100644
--- a/ruby/lib/jam_ruby/models/jam_track_right.rb
+++ b/ruby/lib/jam_ruby/models/jam_track_right.rb
@@ -274,8 +274,11 @@ module JamRuby
# we made it past all checks; let's slap on the redeemed_fingerprint
self.redeemed_and_fingerprinted = true
+
MachineFingerprint.create(all_fingerprint, current_user, MachineFingerprint::TAKEN_ON_SUCCESSFUL_DOWNLOAD, MachineFingerprint::PRINT_TYPE_ALL, remote_ip, self)
- MachineFingerprint.create(running_fingerprint, current_user, MachineFingerprint::TAKEN_ON_SUCCESSFUL_DOWNLOAD, MachineFingerprint::PRINT_TYPE_ACTIVE, remote_ip, self)
+ if all_fingerprint != running_fingerprint
+ MachineFingerprint.create(running_fingerprint, current_user, MachineFingerprint::TAKEN_ON_SUCCESSFUL_DOWNLOAD, MachineFingerprint::PRINT_TYPE_ACTIVE, remote_ip, self)
+ end
save!
end
diff --git a/web/app/assets/images/web/free-jamtrack-cta.png b/web/app/assets/images/web/free-jamtrack-cta.png
new file mode 100644
index 000000000..c8f073167
Binary files /dev/null and b/web/app/assets/images/web/free-jamtrack-cta.png differ
diff --git a/web/app/assets/javascripts/jam_track_preview.js.coffee b/web/app/assets/javascripts/jam_track_preview.js.coffee
index 58388278b..a02a45896 100644
--- a/web/app/assets/javascripts/jam_track_preview.js.coffee
+++ b/web/app/assets/javascripts/jam_track_preview.js.coffee
@@ -9,7 +9,7 @@ context.JK.JamTrackPreview = class JamTrackPreview
@EVENTS = context.JK.EVENTS
@rest = context.JK.Rest()
@logger = context.JK.logger
- @options = options || {master_shows_duration: false, color:'gray'}
+ @options = options || {master_shows_duration: false, color:'gray', add_line_break: false}
@app = app
@jamTrack = jamTrack
@jamTrackTrack = jamTrackTrack
@@ -56,17 +56,26 @@ context.JK.JamTrackPreview = class JamTrackPreview
if @jamTrackTrack.track_type == 'Track'
part = "#{@jamTrackTrack.part}" if @jamTrackTrack.part? && @jamTrackTrack.part != instrumentDescription
-
+ @part.text("(#{part})") if part != ''
else
- if @options.master_shows_duration
- duration = 'entire song'
- if @jamTrack.duration
- duration = "#{context.JK.prettyPrintSeconds(@jamTrack.duration)}"
- part = duration
- else
- part = @jamTrack.name + ' by ' + @jamTrack.original_artist
+ if @options.master_adds_line_break
+ part = '"' + @jamTrack.name + '"' + ' by ' + @jamTrack.original_artist
+
+ @part.html("#{part}") if part != ''
+ @part.addClass('adds-line-break')
+ else
+
+ if @options.master_shows_duration
+ duration = 'entire song'
+ if @jamTrack.duration
+ duration = "#{context.JK.prettyPrintSeconds(@jamTrack.duration)}"
+ part = duration
+ else
+ part = @jamTrack.name + ' by ' + @jamTrack.original_artist
+
+ @part.text("(#{part})") if part != ''
+
- @part.text("(#{part})") if part != ''
if @jamTrackTrack.preview_mp3_url?
diff --git a/web/app/assets/javascripts/web/individual_jamtrack.js b/web/app/assets/javascripts/web/individual_jamtrack.js
index 2d33e9c5d..172a94bc2 100644
--- a/web/app/assets/javascripts/web/individual_jamtrack.js
+++ b/web/app/assets/javascripts/web/individual_jamtrack.js
@@ -9,24 +9,32 @@
var logger = context.JK.logger;
var $page = null;
var $jamtrack_name = null;
+ var $jamtrack_band = null;
var $previews = null;
var $jamTracksButton = null;
var $genericHeader = null;
var $individualizedHeader = null;
+ var $ctaJamTracksButton = null;
function fetchJamTrack() {
- rest.getJamTrack({plan_code: gon.jam_track_plan_code})
+ rest.getJamTrackWithArtistInfo({plan_code: gon.jam_track_plan_code})
.done(function (jam_track) {
logger.debug("jam_track", jam_track)
if(!gon.just_previews) {
if (gon.generic) {
$genericHeader.removeClass('hidden');
+ $jamTracksButton.attr('href', '/client#/jamtrackBrowse')
+ $jamTracksButton.removeClass('hidden').text("Check out all 100+ JamTracks")
+
}
else {
$individualizedHeader.removeClass('hidden')
- $jamtrack_name.text(jam_track.name);
+ $jamtrack_name.text('"' + jam_track.name + '"');
+ $jamtrack_band.text(jam_track.original_artist)
$jamTracksButton.attr('href', '/client?artist=' + jam_track.original_artist + '#/jamtrackBrowse')
+ $jamTracksButton.removeClass('hidden').text("Preview all " + jam_track.band_jam_track_count + " of our " + jam_track.original_artist + " JamTracks")
+ $ctaJamTracksButton.attr('href', '/client?artist=' + jam_track.original_artist + '#/jamtrackBrowse')
}
}
@@ -36,24 +44,28 @@
$previews.append($element);
- new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: false, color:'black'})
+ new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: false, color:'black', master_adds_line_break: true})
})
$previews.append('
')
+
+
})
.fail(function () {
app.notify({title: 'Unable to fetch JamTrack', text: "Please refresh the page or try again later."})
})
-
}
function initialize() {
$page = $('body')
$jamtrack_name = $page.find('.jamtrack_name')
+ $jamtrack_band = $page.find('.jamtrack_band')
$previews = $page.find('.previews')
- $jamTracksButton = $page.find('.browse-jamtracks-wrapper .white-bordered-button')
+ $jamTracksButton = $page.find('.browse-jamtracks')
+ $ctaJamTracksButton = $page.find('.cta-free-jamtrack');
$genericHeader = $page.find('h1.generic')
$individualizedHeader = $page.find('h1.individualized')
+
fetchJamTrack();
}
diff --git a/web/app/assets/javascripts/web/individual_jamtrack_band.js b/web/app/assets/javascripts/web/individual_jamtrack_band.js
index df08517c9..afc4528a5 100644
--- a/web/app/assets/javascripts/web/individual_jamtrack_band.js
+++ b/web/app/assets/javascripts/web/individual_jamtrack_band.js
@@ -13,27 +13,28 @@
var $jamTrackNoun = null;
var $previews = null;
var $jamTracksButton = null;
+ var $jamtrack_band = null;
var $checkItOut = null;
+ var $ctaJamTracksButton = null;
function fetchJamTrack() {
rest.getJamTrackWithArtistInfo({plan_code: gon.jam_track_plan_code})
.done(function (jam_track) {
logger.debug("jam_track", jam_track)
- $jamTrackBandInfo.text(jam_track.band_jam_track_count + ' ' + jam_track.original_artist);
+ $jamtrack_band.text(jam_track.original_artist)
$jamTracksButton.attr('href', '/client?artist=' + jam_track.original_artist + '#/jamtrackBrowse')
+ $jamTracksButton.removeClass('hidden').text("Preview all " + jam_track.band_jam_track_count + " of our " + jam_track.original_artist + " JamTracks")
+ $ctaJamTracksButton.attr('href', '/client?artist=' + jam_track.original_artist + '#/jamtrackBrowse')
+
- if(jam_track.band_jam_track_count == 1) {
- $jamTrackNoun.text('JamTrack')
- $checkItOut.text(', Check It Out!')
- }
context._.each(jam_track.tracks, function (track) {
var $element = $('
')
$previews.append($element);
- new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: false, color:'black'})
+ new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: false, color:'black', master_adds_line_break:true})
})
$previews.append('
')
@@ -48,9 +49,9 @@
$page = $('body')
$jamTrackBandInfo = $page.find('.jamtrack_band_info')
$previews = $page.find('.previews')
- $jamTracksButton = $page.find('.browse-jamtracks-wrapper .white-bordered-button')
- $jamTrackNoun = $page.find('.jamtrack_noun')
- $checkItOut = $page.find('.check-it-out')
+ $jamtrack_band = $page.find('.jamtrack_band')
+ $jamTracksButton = $page.find('.browse-jamtracks')
+ $ctaJamTracksButton = $page.find('.cta-free-jamtrack');
fetchJamTrack();
}
diff --git a/web/app/assets/stylesheets/client/jamTrackPreview.css.scss b/web/app/assets/stylesheets/client/jamTrackPreview.css.scss
index 71145f1a4..37b871e77 100644
--- a/web/app/assets/stylesheets/client/jamTrackPreview.css.scss
+++ b/web/app/assets/stylesheets/client/jamTrackPreview.css.scss
@@ -68,4 +68,10 @@
display:none;
}
}
+
+ .adds-line-break {
+ display:block;
+ margin-left:66px;
+ vertical-align: top;
+ }
}
\ No newline at end of file
diff --git a/web/app/assets/stylesheets/landings/individual_jamtrack.css.scss b/web/app/assets/stylesheets/landings/individual_jamtrack.css.scss
index 6111876ee..773f12be1 100644
--- a/web/app/assets/stylesheets/landings/individual_jamtrack.css.scss
+++ b/web/app/assets/stylesheets/landings/individual_jamtrack.css.scss
@@ -16,17 +16,20 @@ body.web.landing_jamtrack.individual_jamtrack {
width:90%;
}
+ .prompt {
+ margin-top:10px;
+ }
+
.jam-track-preview-holder {
margin-bottom: 7px;
- float: left;
&[data-track-type="Master"] {
width: 100%;
}
&[data-track-type="Track"] {
- width: 50%;
+ width: 100%;
}
}
}
\ No newline at end of file
diff --git a/web/app/assets/stylesheets/landings/individual_jamtrack_band.css.scss b/web/app/assets/stylesheets/landings/individual_jamtrack_band.css.scss
index db25181b1..56c4fc1ae 100644
--- a/web/app/assets/stylesheets/landings/individual_jamtrack_band.css.scss
+++ b/web/app/assets/stylesheets/landings/individual_jamtrack_band.css.scss
@@ -16,17 +16,20 @@ body.web.landing_jamtrack.individual_jamtrack_band {
width:90%;
}
+ .prompt {
+ margin-top:10px;
+ }
+
.jam-track-preview-holder {
margin-bottom: 7px;
- float: left;
&[data-track-type="Master"] {
width: 100%;
}
&[data-track-type="Track"] {
- width: 50%;
+ width: 100%;
}
}
}
\ No newline at end of file
diff --git a/web/app/assets/stylesheets/landings/landing_page_new.css.scss b/web/app/assets/stylesheets/landings/landing_page_new.css.scss
index 897152536..85381683d 100644
--- a/web/app/assets/stylesheets/landings/landing_page_new.css.scss
+++ b/web/app/assets/stylesheets/landings/landing_page_new.css.scss
@@ -2,6 +2,28 @@
body.web.landing_page {
+ div.cta-free-jamtrack {
+ top: 32px;
+ position: absolute;
+ left: 383px;
+
+ a {
+ width: 296px;
+ height: 57px;
+ }
+
+ .value-indicator {
+ position:absolute;
+ left: 311px;
+ top: 19px;
+ width:80px;
+ }
+
+ img {
+ height:100%;
+ width:100%;
+ }
+ }
.two_by_two {
h1 {
@@ -29,6 +51,41 @@ body.web.landing_page {
}
}
+ .one_by_two {
+ h1 {
+ margin:0 0 5px;
+ padding:7px 0;
+ display:inline-block;
+
+ &.hidden {
+ display:none;
+ }
+ }
+ .row {
+ @include border_box_sizing;
+
+ &:nth-of-type(1) {
+ padding:20px 0 0 0;
+ }
+
+ .column {
+ @include border_box_sizing;
+
+ &:nth-of-type(1) {
+ width:35%;
+ }
+
+ &:nth-of-type(2) {
+ width:65%;
+ }
+ }
+ }
+ .video-container {
+ width:100%;
+ padding-bottom:56.25%;
+ }
+ }
+
&.landing_jamtrack, &.landing_product {
.landing-tag {
diff --git a/web/app/controllers/api_jam_tracks_controller.rb b/web/app/controllers/api_jam_tracks_controller.rb
index a6a3bc44c..d85f93bd9 100644
--- a/web/app/controllers/api_jam_tracks_controller.rb
+++ b/web/app/controllers/api_jam_tracks_controller.rb
@@ -139,7 +139,7 @@ class ApiJamTracksController < ApiController
# jamtracks come in the form id-44 or id-48, so we need to do a little extra parsing
- puts "#{jamtracks.inspect}"
+
jamtrack_ids = Set.new
jamtracks_fq_ids = Set.new
jamtracks.each do |jamtrack|
@@ -151,8 +151,6 @@ class ApiJamTracksController < ApiController
end
end
-
- puts "#{jamtrack_ids.inspect} #{jamtracks_fq_ids.inspect}"
@jam_tracks = JamTrackRight.list_keys(current_user, jamtrack_ids)
@jamtracks_fq_ids = jamtracks_fq_ids
end
diff --git a/web/app/controllers/landings_controller.rb b/web/app/controllers/landings_controller.rb
index e7e7150ca..5700ac543 100644
--- a/web/app/controllers/landings_controller.rb
+++ b/web/app/controllers/landings_controller.rb
@@ -67,6 +67,8 @@ class LandingsController < ApplicationController
end
def individual_jamtrack
+ @no_landing_tag = true
+ @show_cta_free_jamtrack = true
@jam_track = JamTrack.find_by_plan_code("jamtrack-" + params[:plan_code])
gon.jam_track_plan_code = params[:plan_code] ? "jamtrack-" + params[:plan_code] : nil
gon.generic = params[:generic]
@@ -74,6 +76,8 @@ class LandingsController < ApplicationController
end
def individual_jamtrack_band
+ @no_landing_tag = true
+ @show_cta_free_jamtrack = true
@jam_track = JamTrack.find_by_plan_code("jamtrack-" + params[:plan_code])
gon.jam_track_plan_code = params[:plan_code] ? "jamtrack-" + params[:plan_code] : nil
diff --git a/web/app/views/dialogs/_videoDialog.html.erb b/web/app/views/dialogs/_videoDialog.html.erb
index bc2a72099..ec590743e 100644
--- a/web/app/views/dialogs/_videoDialog.html.erb
+++ b/web/app/views/dialogs/_videoDialog.html.erb
@@ -10,7 +10,7 @@
-
+
diff --git a/web/app/views/landings/individual_jamtrack.html.slim b/web/app/views/landings/individual_jamtrack.html.slim
index 53d4bc729..c3b6e9daa 100644
--- a/web/app/views/landings/individual_jamtrack.html.slim
+++ b/web/app/views/landings/individual_jamtrack.html.slim
@@ -1,42 +1,26 @@
- provide(:page_name, 'landing_page full landing_jamtrack individual_jamtrack')
- provide(:description, @jam_track.nil? ? nil : "Preview multi-track JamTrack recording: #{@jam_track.name} by #{@jam_track.original_artist}. Way better than a backing track.")
-.two_by_two
+.one_by_two
.row
.column
h1.hidden.individualized
- | Check Out Our
+ | Preview
strong.jamtrack_name
- | JamTrack
+ br
+ | JamTrack by
+ span.jamtrack_band
+
h1.hidden.generic
- | We Have 100+ Amazing JamTracks, Check One Out!
- p Click the play buttons below to hear the master mix and each fully isolated track. All are included in each single JamTrack.
+ | Preview One of Our JamTracks
+ p.prompt Click play buttons to preview tracks. Every JamTrack includes fully isolated tracks for each part of the song!
.previews
+ a.browse-jamtracks.hidden
.column
h1 See What You Can Do With JamTracks
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/askHvcCoNfw" frameborder="0" allowfullscreen
- br clear="all"
- .row
- .column
- h1
- | Get Your First JamTrack Free Now!
- p Click the GET A JAMTRACK FREE button below. Browse to find the one you want. Click Add to cart, and we'll apply a credit during checkout to make this first one free! We're confident you'll be back for more.
- .browse-jamtracks-wrapper
- a.white-bordered-button href="/client#/jamtrackBrowse" GET A JAMTRACK FREE!
- .column
- h1 Why Are JamTracks Different & Better?
- p
- | JamTracks are the best way to play with your favorite music.
- | Unlike traditional backing tracks, JamTracks are complete multitrack recordings,
- | with fully isolated tracks for each part. Used with the free JamKazam app/service, you can:
- ul.jamtrack-reasons
- li Solo just the individual track you want to play to hear and learn it
- li Mute just the track 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 And even go online to play JamTracks with others in real time!
+ iframe src="//www.youtube.com/embed/askHvcCoNfw" frameborder="0" allowfullscreen="allowfullscreen"
br clear="all"
br clear="all"
diff --git a/web/app/views/landings/individual_jamtrack_band.html.slim b/web/app/views/landings/individual_jamtrack_band.html.slim
index a16b43745..88237cd56 100644
--- a/web/app/views/landings/individual_jamtrack_band.html.slim
+++ b/web/app/views/landings/individual_jamtrack_band.html.slim
@@ -1,42 +1,22 @@
- provide(:page_name, 'landing_page full landing_jamtrack individual_jamtrack_band')
- provide(:description, @jam_track.nil? ? nil : "Preview multi-track JamTrack recording: #{@jam_track.name} by #{@jam_track.original_artist}. Way better than a backing track.")
-.two_by_two
+.one_by_two
.row
.column
h1
- | We Have
- span.jamtrack_band_info
- |
- span.jamtrack_noun JamTracks
- span.check-it-out , Check One Out!
- p Click the play buttons below to hear the master mix and each fully isolated track. All are included in each single JamTrack.
+ | Preview a
+ | JamTrack by
+ span.jamtrack_band
+
+ p.prompt Click play buttons to preview tracks. Every JamTrack includes fully isolated tracks for each part of the song!
.previews
+ a.browse-jamtracks.hidden
.column
h1 See What You Can Do With JamTracks
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/askHvcCoNfw" frameborder="0" allowfullscreen
- br clear="all"
- .row
- .column
- h1
- | Get Your First JamTrack Free Now!
- p Click the GET A JAMTRACK FREE button below. Browse to find the one you want. Click Add to cart, and we'll apply a credit during checkout to make this first one free! We're confident you'll be back for more.
- .browse-jamtracks-wrapper
- a.white-bordered-button href="/client#/jamtrackBrowse" GET A JAMTRACK FREE!
- .column
- h1 Why Are JamTracks Different & Better?
- p
- | JamTracks are the best way to play with your favorite music.
- | Unlike traditional backing tracks, JamTracks are complete multitrack recordings,
- | with fully isolated tracks for each part. Used with the free JamKazam app/service, you can:
- ul.jamtrack-reasons
- li Solo just the individual track you want to play to hear and learn it
- li Mute just the track 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 And even go online to play JamTracks with others in real time!
+ iframe src="//www.youtube.com/embed/askHvcCoNfw" frameborder="0" allowfullscreen="allowfullscreen"
br clear="all"
br clear="all"
diff --git a/web/app/views/landings/product_jamblaster.html.slim b/web/app/views/landings/product_jamblaster.html.slim
index ad5c22023..1b9e65d06 100644
--- a/web/app/views/landings/product_jamblaster.html.slim
+++ b/web/app/views/landings/product_jamblaster.html.slim
@@ -18,7 +18,7 @@
h1 See What You Can Do With The JamBlaster
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/YHZQHfKDdMc" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/YHZQHfKDdMc" frameborder="0" allowfullscreen="allowfullscreen"
br clear="all"
.row
.column
diff --git a/web/app/views/landings/product_jamtracks.html.slim b/web/app/views/landings/product_jamtracks.html.slim
index 86aff514e..acfaeffd1 100644
--- a/web/app/views/landings/product_jamtracks.html.slim
+++ b/web/app/views/landings/product_jamtracks.html.slim
@@ -13,7 +13,7 @@
h1 See What You Can With JamTracks
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/askHvcCoNfw" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/askHvcCoNfw" frameborder="0" allowfullscreen="allowfullscreen"
br clear="all"
.row
.column
diff --git a/web/app/views/landings/product_platform.html.slim b/web/app/views/landings/product_platform.html.slim
index ecb6d8c9c..13d2647ce 100644
--- a/web/app/views/landings/product_platform.html.slim
+++ b/web/app/views/landings/product_platform.html.slim
@@ -21,7 +21,7 @@
h1 See What You Can Do With JamKazam
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen="allowfullscreen"
br clear="all"
.row
.column
diff --git a/web/app/views/landings/watch_bands_1.html.slim b/web/app/views/landings/watch_bands_1.html.slim
index a271b1735..6b178d59e 100644
--- a/web/app/views/landings/watch_bands_1.html.slim
+++ b/web/app/views/landings/watch_bands_1.html.slim
@@ -5,7 +5,7 @@
h1 Watch 6 Bands Play Together from Different Locations
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/I2reeNKtRjg" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/I2reeNKtRjg" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
h2 It's FREE! Ready to Go?
= link_to image_tag("web/cta_button.png", :alt => "Sign up now for your free account!"), signup_path, class: "signup", id: "signup"
diff --git a/web/app/views/landings/watch_bands_2.html.slim b/web/app/views/landings/watch_bands_2.html.slim
index 504b83120..76fa70ff2 100644
--- a/web/app/views/landings/watch_bands_2.html.slim
+++ b/web/app/views/landings/watch_bands_2.html.slim
@@ -5,7 +5,7 @@
h1 See How JamKazam Works
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
h2 It's FREE! Ready to Go?
= link_to image_tag("web/cta_button.png", :alt => "Sign up now for your free account!"), signup_path, class: "signup", id: "signup"
diff --git a/web/app/views/landings/watch_bands_3.html.slim b/web/app/views/landings/watch_bands_3.html.slim
index 814578d58..7982c99ba 100644
--- a/web/app/views/landings/watch_bands_3.html.slim
+++ b/web/app/views/landings/watch_bands_3.html.slim
@@ -5,7 +5,7 @@
h1 See How to Get Started
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/DBo--aj_P1w" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/DBo--aj_P1w" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
h2 It's FREE! Ready to Go?
= link_to image_tag("web/cta_button.png", :alt => "Sign up now for your free account!"), signup_path, class: "signup", id: "signup"
diff --git a/web/app/views/landings/watch_bands_tight.html.slim b/web/app/views/landings/watch_bands_tight.html.slim
index 70ce2f991..84ec2fc51 100644
--- a/web/app/views/landings/watch_bands_tight.html.slim
+++ b/web/app/views/landings/watch_bands_tight.html.slim
@@ -4,7 +4,7 @@
h1 Watch 6 Bands Play Together from Different Locations
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/I2reeNKtRjg" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/I2reeNKtRjg" frameborder="0" allowfullscreen="allowfullscreen"
.row
.column
.cta-container
diff --git a/web/app/views/landings/watch_kick.html.slim b/web/app/views/landings/watch_kick.html.slim
index 3e39eb859..03dd463f1 100644
--- a/web/app/views/landings/watch_kick.html.slim
+++ b/web/app/views/landings/watch_kick.html.slim
@@ -7,7 +7,7 @@
b JamBlaster
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/gAJAIHMyois?rel=0&autoplay=1" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/gAJAIHMyois?rel=0&autoplay=1" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
h1
span.badge-number 3
@@ -20,7 +20,7 @@
| Learn About the Free JamKazam Service
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
h1
span.badge-number 4
diff --git a/web/app/views/landings/watch_kick_2.html.slim b/web/app/views/landings/watch_kick_2.html.slim
index 5d038e2f1..05c661e73 100644
--- a/web/app/views/landings/watch_kick_2.html.slim
+++ b/web/app/views/landings/watch_kick_2.html.slim
@@ -9,7 +9,7 @@
p Band performance starts at 1:00 mark
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/gAJAIHMyois" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/gAJAIHMyois" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
p
| If you don't own an audio interface, we strongly recommend that you grab a JamBlaster on KickStarter now. It is far faster than traditional interfaces and easily
diff --git a/web/app/views/landings/watch_kick_3.html.slim b/web/app/views/landings/watch_kick_3.html.slim
index 2fc6a788a..602da4342 100644
--- a/web/app/views/landings/watch_kick_3.html.slim
+++ b/web/app/views/landings/watch_kick_3.html.slim
@@ -12,7 +12,7 @@
b JamBlaster
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/2Zk7-04IAx4?rel=0&autoplay=1" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/2Zk7-04IAx4?rel=0&autoplay=1" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
p
| If you want to be able to play like this, grab a JamBlaster on KickStarter while it's available - only about 20 more days!
diff --git a/web/app/views/landings/watch_kick_4.html.slim b/web/app/views/landings/watch_kick_4.html.slim
index d11973adc..8a4682104 100644
--- a/web/app/views/landings/watch_kick_4.html.slim
+++ b/web/app/views/landings/watch_kick_4.html.slim
@@ -6,7 +6,7 @@
| Learn About the Free JamKazam Service
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
p
| If you already own an audio interface, you are ready to go!
@@ -22,7 +22,7 @@
| from Atlanta, Austin, Chicago & Brooklyn
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/2Zk7-04IAx4" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/2Zk7-04IAx4" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
p
| If you don't already own an audio interface, grab a JamBlaster on KickStarter today! Absolutely the best way to play online.
diff --git a/web/app/views/landings/watch_overview_1.html.slim b/web/app/views/landings/watch_overview_1.html.slim
index aef2a3119..6eb6f52c9 100644
--- a/web/app/views/landings/watch_overview_1.html.slim
+++ b/web/app/views/landings/watch_overview_1.html.slim
@@ -5,7 +5,7 @@
h1 Watch Video to See How JamKazam Works
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
h2 It's FREE! Ready to Go?
= link_to image_tag("web/cta_button.png", :alt => "Sign up now for your free account!"), signup_path, class: "signup", id: "signup", rel: "external"
@@ -15,7 +15,7 @@
b JamBlaster
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/gAJAIHMyois" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/gAJAIHMyois" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
h2 More Resources:
a href="https://www.youtube.com/watch?v=_7qj5RXyHCo" rel="external"
diff --git a/web/app/views/landings/watch_overview_2.html.slim b/web/app/views/landings/watch_overview_2.html.slim
index 07b5f073d..a6cd76427 100644
--- a/web/app/views/landings/watch_overview_2.html.slim
+++ b/web/app/views/landings/watch_overview_2.html.slim
@@ -5,7 +5,7 @@
h1 Watch 6 Bands Play Together from Different Locations
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/I2reeNKtRjg" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/I2reeNKtRjg" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
h2 It's FREE! Ready to Go?
= link_to image_tag("web/cta_button.png", :alt => "Sign up now for your free account!"), signup_path, class: "signup", id: "signup"
diff --git a/web/app/views/landings/watch_overview_3.html.slim b/web/app/views/landings/watch_overview_3.html.slim
index 3a18002c3..eaf7d6880 100644
--- a/web/app/views/landings/watch_overview_3.html.slim
+++ b/web/app/views/landings/watch_overview_3.html.slim
@@ -5,7 +5,7 @@
h1 See How to Get Started Using JamKazam
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/DBo--aj_P1w" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/DBo--aj_P1w" frameborder="0" allowfullscreen="allowfullscreen"
.cta-container
h2 It's FREE! Ready to Go?
= link_to image_tag("web/cta_button.png", :alt => "Sign up now for your free account!"), signup_path, class: "signup", id: "signup"
diff --git a/web/app/views/landings/watch_overview_tight.html.slim b/web/app/views/landings/watch_overview_tight.html.slim
index c64f0dc78..ca9c5f930 100644
--- a/web/app/views/landings/watch_overview_tight.html.slim
+++ b/web/app/views/landings/watch_overview_tight.html.slim
@@ -4,7 +4,7 @@
h1 Watch Overview Video to See How JamKazam Works
.video-wrapper
.video-container
- iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen="allowfullscreen"
.row
.column
.cta-container
diff --git a/web/app/views/layouts/web.html.erb b/web/app/views/layouts/web.html.erb
index 417f70dc9..929e8d7ed 100644
--- a/web/app/views/layouts/web.html.erb
+++ b/web/app/views/layouts/web.html.erb
@@ -54,13 +54,20 @@
<% end %>
- <% unless @welcome_page %>
+ <% unless @welcome_page || @no_landing_tag %>
Live music platform &
social network for musicians
<% end %>
+ <% if @show_cta_free_jamtrack %>
+
+ <%= link_to image_tag("web/free-jamtrack-cta.png", :alt => "ClICK HERE TO PICK YOUR FIRST JAMTRACK FREE!"), "/client#/jamtrackBrowse", class: "cta-free-jamtrack" %>
+ $1.99 value
+
+
+ <% end %>
diff --git a/web/app/views/users/_downloads.html.slim b/web/app/views/users/_downloads.html.slim
index f43413be0..8ccd21b4c 100644
--- a/web/app/views/users/_downloads.html.slim
+++ b/web/app/views/users/_downloads.html.slim
@@ -47,7 +47,7 @@
| 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
- iframe src="//www.youtube.com/embed/askHvcCoNfw" frameborder="0" allowfullscreen
+ iframe src="//www.youtube.com/embed/askHvcCoNfw" frameborder="0" allowfullscreen="allowfullscreen"
a.go-jamtrack-shopping href="/client#/jamtrackBrowse" rel="external"
| Shop for free
diff --git a/web/spec/controllers/api_jam_tracks_controller_spec.rb b/web/spec/controllers/api_jam_tracks_controller_spec.rb
index d96e78d23..fc4685eb9 100644
--- a/web/spec/controllers/api_jam_tracks_controller_spec.rb
+++ b/web/spec/controllers/api_jam_tracks_controller_spec.rb
@@ -15,6 +15,7 @@ describe ApiJamTracksController do
end
before(:each) do
+ MachineFingerprint.destroy_all
JamTrackRight.destroy_all
JamTrack.destroy_all
@user = FactoryGirl.create(:user)
@@ -65,7 +66,7 @@ describe ApiJamTracksController do
it "finds a download" do
#get "/download/#{right.id}/"
right = JamTrackRight.create(:user=>@user, :jam_track=>@jam_track)
- get :download, { :format=>'json', :id=>@jam_track.id }
+ get :download, { :format=>'json', :id=>@jam_track.id, all_fp: 'all', running_fp: 'running' }
response.should be_success
response.status.should == 202
@@ -142,12 +143,13 @@ describe ApiJamTracksController do
ResqueSpec.reset!
end
- it "download depends on rights" do
- get :download, :id=>@jam_track.id, sample_rate: 48
+ it "download depends on rights" do
+ fingerprint={all:'all', running:'running'}
+ get :download, :id=>@jam_track.id, sample_rate: 48, all_fp: 'all', running_fp: 'running'
response.status.should == 403
right = JamTrackRight.create(:user=>@user, :jam_track=>@jam_track)
- get :download, :id=>@jam_track.id, sample_rate: 48
+ get :download, :id=>@jam_track.id, sample_rate: 48, all_fp: 'all', running_fp: 'running'
response.status.should == 202
right.download_count.should eq(0)
right.private_key_44.should be_nil
@@ -166,20 +168,19 @@ describe ApiJamTracksController do
right.private_key_48.should_not be_nil
right.download_count.should eq(0)
- get :download, :id=>@jam_track.id, sample_rate: 48
+ get :download, :id=>@jam_track.id, sample_rate: 48, all_fp: 'all', running_fp: 'running'
response.status.should == 302
- puts response.location
response.location.should =~ /.*#{Regexp.escape(right.filename(:url_48))}.*/
right.reload
right.download_count.should eq(1)
end
it "supports multiple bitrates" do
- get :download, :id=>@jam_track.id, :sample_rate=>44
+ get :download, :id=>@jam_track.id, :sample_rate=>44, all_fp: 'all', running_fp: 'running'
response.status.should == 403
right = JamTrackRight.create(:user=>@user, :jam_track=>@jam_track)
- get :download, :id=>@jam_track.id, :sample_rate=>44
+ get :download, :id=>@jam_track.id, :sample_rate=>44, all_fp: 'all', running_fp: 'running'
response.status.should == 202
right.download_count.should eq(0)
right.private_key_44.should be_nil
@@ -198,7 +199,7 @@ describe ApiJamTracksController do
right.private_key_48.should be_nil
right.download_count.should eq(0)
- get :download, :id=>@jam_track.id, :sample_rate=>44
+ get :download, :id=>@jam_track.id, :sample_rate=>44, all_fp: 'all', running_fp: 'running'
response.status.should == 302
response.location.should =~ /.*#{Regexp.escape(right.filename(:url_44))}.*/
right.reload
@@ -276,7 +277,7 @@ describe ApiJamTracksController do
it "success" do
right = FactoryGirl.create(:jam_track_right, user: @user, signed_44: false, signed_48:false)
right.signing_queued_at.should be_nil
- post :enqueue, {:format=>'json', :id=>right.jam_track.id}
+ post :enqueue, {:format=>'json', :id=>right.jam_track.id, fingerprint: {all: 'all', running: 'running'} }
response.should be_success
right.reload
@@ -295,4 +296,49 @@ describe ApiJamTracksController do
json['error_count'].should eq(0)
end
end
+
+
+ describe "guard fraud" do
+ it "stops second user from downloading using same machine" do
+
+ right = JamTrackRight.create(:user=>@user, :jam_track=>@jam_track)
+ right.redeemed = true
+ right.save!
+ get :download, :id=>@jam_track.id, sample_rate: 48, all_fp: 'all', running_fp: 'running'
+ response.status.should == 202
+
+ user2 = FactoryGirl.create(:user)
+
+ controller.current_user = user2
+
+ right = JamTrackRight.create(:user=>user2, :jam_track=>@jam_track)
+ right.redeemed = true
+ right.save!
+ get :download, :id=>@jam_track.id, sample_rate: 48, all_fp: 'all', running_fp: 'running'
+ response.status.should == 403
+ JSON.parse(response.body)['message'].should eq("other user has 'all' fingerprint")
+ end
+
+ it "stops second user from enqueuing using same machine" do
+ right = JamTrackRight.create(:user=>@user, :jam_track=>@jam_track)
+ right.redeemed = true
+ right.save!
+ right.signing_queued_at.should be_nil
+ post :enqueue, {:format=>'json', :id=>right.jam_track.id, fingerprint: {all: 'all', running: 'running'} }
+ response.should be_success
+
+ user2 = FactoryGirl.create(:user)
+
+ controller.current_user = user2
+
+ right = JamTrackRight.create(:user=>user2, :jam_track=>@jam_track)
+ right.redeemed = true
+ right.save!
+ right.signing_queued_at.should be_nil
+ post :enqueue, {:format=>'json', :id=>right.jam_track.id, fingerprint: {all: 'all', running: 'running'} }
+ get :download, :id=>@jam_track.id, sample_rate: 48, all_fp: 'all', running_fp: 'running'
+ response.status.should == 403
+ JSON.parse(response.body)['message'].should eq("other user has 'all' fingerprint")
+ end
+ end
end
diff --git a/web/spec/controllers/api_shopping_carts_controller_spec.rb b/web/spec/controllers/api_shopping_carts_controller_spec.rb
index 4c9f69079..c6f196d0d 100644
--- a/web/spec/controllers/api_shopping_carts_controller_spec.rb
+++ b/web/spec/controllers/api_shopping_carts_controller_spec.rb
@@ -55,7 +55,7 @@ describe ApiShoppingCartsController do
describe "anonymous" do
- let(:user) { AnonymousUser.new('abc') }
+ let(:user) { AnonymousUser.new('abc', {}) }
before(:each) do
controller.current_user = nil
diff --git a/web/spec/controllers/api_signup_hint_spec.rb b/web/spec/controllers/api_signup_hint_spec.rb
index ac9a4e323..1bafa164a 100644
--- a/web/spec/controllers/api_signup_hint_spec.rb
+++ b/web/spec/controllers/api_signup_hint_spec.rb
@@ -3,7 +3,7 @@ require 'spec_helper'
describe ApiSignupHintsController, :type=>:controller do
render_views
- let(:user) {AnonymousUser.new(SecureRandom.uuid)}
+ let(:user) {AnonymousUser.new(SecureRandom.uuid, {})}
before(:each) do
SignupHint.delete_all
diff --git a/web/spec/features/individual_jamtrack_band_spec.rb b/web/spec/features/individual_jamtrack_band_spec.rb
index 9fa47b3b2..badfb8583 100644
--- a/web/spec/features/individual_jamtrack_band_spec.rb
+++ b/web/spec/features/individual_jamtrack_band_spec.rb
@@ -15,60 +15,19 @@ describe "Individual JamTrack Band", :js => true, :type => :feature, :capybara_f
let(:user) { FactoryGirl.create(:user) }
let(:jamtrack_acdc_backinblack) { @jamtrack_acdc_backinblack }
- let(:billing_info) {
- {
- first_name: 'Seth',
- last_name: 'Call',
- address1: '10704 Buckthorn Drive',
- city: 'Austin',
- state: 'Texas',
- country: 'US',
- zip: '78759',
- number: '4111111111111111',
- month: '08',
- year: '2017',
- verification_value: '012'
- }
- }
-
- def create_account(user, billing_info)
- @recurlyClient.create_account(user, billing_info)
- @created_accounts << user
- end
before(:all) do
-
- @recurlyClient = RecurlyClient.new
- @created_accounts = []
-
@jamtrack_acdc_backinblack = FactoryGirl.create(:jam_track, name: 'Back in Black', original_artist: 'AC/DC', sales_region: 'United States', make_track: true, plan_code: 'jamtrack-acdc-backinblack')
+ end
- # make sure tax estimate plans are there
- @recurlyClient.create_jam_track_plan(@jamtrack_acdc_backinblack) unless @recurlyClient.find_jam_track_plan(@jamtrack_acdc_backinblack)
- end
-
-
- after(:each) do
- @created_accounts.each do |user|
- if user.recurly_code
- begin
- @account = Recurly::Account.find(user.recurly_code)
- if @account.present?
- @account.destroy
- end
- rescue
- end
- end
- end
- end
describe "AC/DC Back in Black" do
it "logged out" do
visit "/landing/jamtracks/band/acdc-backinblack"
- find('h1', text: "We Have 1 #{@jamtrack_acdc_backinblack.original_artist} JamTrack, Check It Out!")
+ find('.jamtrack_band', text: @jamtrack_acdc_backinblack.original_artist)
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
if track.master?
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
@@ -78,16 +37,17 @@ describe "Individual JamTrack Band", :js => true, :type => :feature, :capybara_f
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
end
end
- find('a.white-bordered-button')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
+ find('a.cta-free-jamtrack')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
+ find('a.browse-jamtracks')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
- find('a.white-bordered-button').trigger(:click)
+ find('a.browse-jamtracks').trigger(:click)
find('h1', text: 'jamtracks')
end
it "logged in" do
fast_signin(user, "/landing/jamtracks/band/acdc-backinblack")
- find('h1', text: "We Have 1 #{@jamtrack_acdc_backinblack.original_artist} JamTrack, Check It Out!")
+ find('.jamtrack_band', text: @jamtrack_acdc_backinblack.original_artist)
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
if track.master?
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
@@ -97,9 +57,10 @@ describe "Individual JamTrack Band", :js => true, :type => :feature, :capybara_f
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
end
end
- find('a.white-bordered-button')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
+ find('a.cta-free-jamtrack')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
+ find('a.browse-jamtracks')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
- find('a.white-bordered-button').trigger(:click)
+ find('a.browse-jamtracks').trigger(:click)
find('h1', text: 'jamtracks')
end
end
diff --git a/web/spec/features/individual_jamtrack_spec.rb b/web/spec/features/individual_jamtrack_spec.rb
index 3483a8b86..1711554b6 100644
--- a/web/spec/features/individual_jamtrack_spec.rb
+++ b/web/spec/features/individual_jamtrack_spec.rb
@@ -31,44 +31,19 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
}
}
- def create_account(user, billing_info)
- @recurlyClient.create_account(user, billing_info)
- @created_accounts << user
- end
-
before(:all) do
-
- @recurlyClient = RecurlyClient.new
- @created_accounts = []
-
@jamtrack_acdc_backinblack = FactoryGirl.create(:jam_track, name: 'Back in Black', original_artist: 'AC/DC', sales_region: 'United States', make_track: true, plan_code: 'jamtrack-acdc-backinblack')
+ end
- # make sure plans are there
- @recurlyClient.create_jam_track_plan(@jamtrack_acdc_backinblack) unless @recurlyClient.find_jam_track_plan(@jamtrack_acdc_backinblack)
- end
-
-
- after(:each) do
- @created_accounts.each do |user|
- if user.recurly_code
- begin
- @account = Recurly::Account.find(user.recurly_code)
- if @account.present?
- @account.destroy
- end
- rescue
- end
- end
- end
- end
describe "AC/DC Back in Black" do
it "logged out" do
visit "/landing/jamtracks/acdc-backinblack"
- find('h1', text: 'Check Out Our Back in Black JamTrack')
+ find('.jamtrack_name', '"Back in Black"')
+ find('.jamtrack_band', '"AC/DC"')
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
if track.master?
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
@@ -78,16 +53,18 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
end
end
- find('a.white-bordered-button')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
+ find('a.cta-free-jamtrack')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
+ find('a.browse-jamtracks')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
- find('a.white-bordered-button').trigger(:click)
+ find('a.browse-jamtracks').trigger(:click)
find('h1', text: 'jamtracks')
end
it "logged in" do
fast_signin(user, "/landing/jamtracks/acdc-backinblack")
- find('h1', text: 'Check Out Our Back in Black JamTrack')
+ find('.jamtrack_name', '"Back in Black"')
+ find('.jamtrack_band', '"AC/DC"')
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
if track.master?
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
@@ -97,16 +74,17 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
end
end
- find('a.white-bordered-button')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
+ find('a.cta-free-jamtrack')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
+ find('a.browse-jamtracks')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
- find('a.white-bordered-button').trigger(:click)
+ find('a.browse-jamtracks').trigger(:click)
find('h1', text: 'jamtracks')
end
it "generic version" do
visit "/landing/jamtracks/acdc-backinblack?generic=true"
- find('h1', text: 'We Have 100+ Amazing JamTracks, Check One Out!')
+ find('h1', text: 'Preview One of Our JamTracks')
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
if track.master?
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
@@ -116,10 +94,13 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
end
end
- find('a.white-bordered-button')['href'].should eq("/client#/jamtrackBrowse")
+ find('a.cta-free-jamtrack')['href'].should eq("/client#/jamtrackBrowse")
+ find('a.browse-jamtracks')['href'].should eq("/client#/jamtrackBrowse")
- find('a.white-bordered-button').trigger(:click)
+ find('a.browse-jamtracks').trigger(:click)
find('h1', text: 'jamtracks')
+
+
end
end
end
diff --git a/web/spec/features/jamtrack_shopping_spec.rb b/web/spec/features/jamtrack_shopping_spec.rb
index 3cf01fc6d..23da6a3f4 100644
--- a/web/spec/features/jamtrack_shopping_spec.rb
+++ b/web/spec/features/jamtrack_shopping_spec.rb
@@ -35,9 +35,9 @@ describe "JamTrack Shopping", :js => true, :type => :feature, :capybara_feature
def find_jamtrack jamtrack, options = {}
jamtrack_record = find(".jamtrack-record[jamtrack-id=\"#{jamtrack.id}\"]")
- jamtrack_record.find('.detail-value', text: jamtrack.name)
+ #jamtrack_record.find('.detail-value', text: jamtrack.name)
#jamtrack_record.find('.detail-value', text: jamtrack.recording_type)
- jamtrack_record.find('.detail-value', text: jamtrack.original_artist)
+ #jamtrack_record.find('.detail-value', text: jamtrack.original_artist)
# jamtrack_record.find('.detail-value', text: jamtrack.genre.description)
# jamtrack_record.find('.detail-value', text: [jamtrack.songwriter, jamtrack.publisher].join(', '))
# jamtrack_record.find('.copyright-value', text: jamtrack.licensor.name)
diff --git a/web/spec/features/products_spec.rb b/web/spec/features/products_spec.rb
index 4fecc2703..37afb0df8 100644
--- a/web/spec/features/products_spec.rb
+++ b/web/spec/features/products_spec.rb
@@ -15,54 +15,14 @@ describe "Product Pages", :js => true, :type => :feature, :capybara_feature => t
let(:user) { FactoryGirl.create(:user) }
let(:jamtrack_acdc_backinblack) { @jamtrack_acdc_backinblack }
- let(:billing_info) {
- {
- first_name: 'Seth',
- last_name: 'Call',
- address1: '10704 Buckthorn Drive',
- city: 'Austin',
- state: 'Texas',
- country: 'US',
- zip: '78759',
- number: '4111111111111111',
- month: '08',
- year: '2017',
- verification_value: '012'
- }
- }
-
- def create_account(user, billing_info)
- @recurlyClient.create_account(user, billing_info)
- @created_accounts << user
- end
-
before(:all) do
- @recurlyClient = RecurlyClient.new
- @created_accounts = []
-
@jamtrack_acdc_backinblack = FactoryGirl.create(:jam_track, name: 'Back in Black', original_artist: 'AC/DC', sales_region: 'United States', make_track: true, plan_code: 'jamtrack-acdc-backinblack')
- # make sure plans are there
- @recurlyClient.create_jam_track_plan(@jamtrack_acdc_backinblack) unless @recurlyClient.find_jam_track_plan(@jamtrack_acdc_backinblack)
end
- after(:each) do
- @created_accounts.each do |user|
- if user.recurly_code
- begin
- @account = Recurly::Account.find(user.recurly_code)
- if @account.present?
- @account.destroy
- end
- rescue
- end
- end
- end
- end
-
describe "JamBlaster" do
before(:all) do
diff --git a/web/spec/features/signup_spec.rb b/web/spec/features/signup_spec.rb
index 3b1ff4400..ff62b51bf 100644
--- a/web/spec/features/signup_spec.rb
+++ b/web/spec/features/signup_spec.rb
@@ -293,7 +293,7 @@ describe "Signup", :js => true, :type => :feature, :capybara_feature => true do
# get a anonymous cookie set up
anon_user_id = page.driver.cookies["user_uuid"]
- anon_user = AnonymousUser.new(anon_user_id.value)
+ anon_user = AnonymousUser.new(anon_user_id.value, {})
SignupHint.refresh_by_anoymous_user(anon_user, {redirect_location: '/products/jamblaster', want_jamblaster: true})
visit signup_path
@@ -321,7 +321,7 @@ describe "Signup", :js => true, :type => :feature, :capybara_feature => true do
# get a anonymous cookie set up
anon_user_id = page.driver.cookies["user_uuid"]
- anon_user = AnonymousUser.new(anon_user_id.value)
+ 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!