mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 21:56:50 -04:00
Added unit tests for sponsor slides.
This commit is contained in:
@@ -85,8 +85,8 @@ func TestSponsorSlides(t *testing.T) {
|
||||
defer clearDb()
|
||||
db, _ = OpenDatabase(testDbPath)
|
||||
|
||||
slide1 := SponsorSlide{1, "subtitle", "line1", "line2", "image", "priority"}
|
||||
slide2 := SponsorSlide{2, "Chezy Sponsaur", "Teh", "Chezy Pofs", "ejface.jpg", "high"}
|
||||
slide1 := SponsorSlide{1, "subtitle", "line1", "line2", "image", 2}
|
||||
slide2 := SponsorSlide{2, "Chezy Sponsaur", "Teh", "Chezy Pofs", "ejface.jpg", 54}
|
||||
db.CreateSponsorSlide(&slide1)
|
||||
db.CreateSponsorSlide(&slide2)
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ CREATE TABLE sponsor_slides (
|
||||
line1 VARCHAR(255),
|
||||
line2 VARCHAR(255),
|
||||
image VARCHAR(255),
|
||||
priority VARCHAR(255)
|
||||
displaytimesec int
|
||||
);
|
||||
|
||||
-- +goose Down
|
||||
|
||||
@@ -49,17 +49,18 @@ func SponsorSlidesPostHandler(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
displayTimeSec, _ := strconv.Atoi(r.PostFormValue("displayTimeSec"))
|
||||
if sponsorSlide == nil {
|
||||
sponsorSlide = &SponsorSlide{Subtitle: r.PostFormValue("subtitle"),
|
||||
Line1: r.PostFormValue("line1"), Line2: r.PostFormValue("line2"),
|
||||
Image: r.PostFormValue("image"), Priority: r.PostFormValue("priority")}
|
||||
Image: r.PostFormValue("image"), DisplayTimeSec: displayTimeSec}
|
||||
err = db.CreateSponsorSlide(sponsorSlide)
|
||||
} else {
|
||||
sponsorSlide.Subtitle = r.PostFormValue("subtitle")
|
||||
sponsorSlide.Line1 = r.PostFormValue("line1")
|
||||
sponsorSlide.Line2 = r.PostFormValue("line2")
|
||||
sponsorSlide.Image = r.PostFormValue("image")
|
||||
sponsorSlide.Priority = r.PostFormValue("priority")
|
||||
sponsorSlide.DisplayTimeSec = displayTimeSec
|
||||
err = db.SaveSponsorSlide(sponsorSlide)
|
||||
}
|
||||
if err != nil {
|
||||
|
||||
52
setup_sponsor_slides_test.go
Normal file
52
setup_sponsor_slides_test.go
Normal file
@@ -0,0 +1,52 @@
|
||||
// Copyright 2014 Team 254. All Rights Reserved.
|
||||
// Author: pat@patfairbank.com (Patrick Fairbank)
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSetupSponsorSlides(t *testing.T) {
|
||||
clearDb()
|
||||
defer clearDb()
|
||||
var err error
|
||||
db, err = OpenDatabase(testDbPath)
|
||||
assert.Nil(t, err)
|
||||
defer db.Close()
|
||||
eventSettings, _ = db.GetEventSettings()
|
||||
mainArena.Setup()
|
||||
|
||||
db.CreateSponsorSlide(&SponsorSlide{0, "Subtitle", "Sponsor Line 1", "Sponsor Line 2", "", 10})
|
||||
db.CreateSponsorSlide(&SponsorSlide{0, "Subtitle", "", "", "Image.gif", 10})
|
||||
|
||||
recorder := getHttpResponse("/setup/sponsor_slides")
|
||||
assert.Equal(t, 200, recorder.Code)
|
||||
assert.Contains(t, recorder.Body.String(), "Sponsor Line 1")
|
||||
assert.Contains(t, recorder.Body.String(), "Image.gif")
|
||||
|
||||
recorder = postHttpResponse("/setup/sponsor_slides", "action=delete&id=1")
|
||||
assert.Equal(t, 302, recorder.Code)
|
||||
recorder = getHttpResponse("/setup/sponsor_slides")
|
||||
assert.Equal(t, 200, recorder.Code)
|
||||
assert.NotContains(t, recorder.Body.String(), "Sponsor Line 1")
|
||||
assert.Contains(t, recorder.Body.String(), "Image.gif")
|
||||
|
||||
recorder = postHttpResponse("/setup/sponsor_slides", "action=save&line2=Sponsor Line 2 revised")
|
||||
assert.Equal(t, 302, recorder.Code)
|
||||
recorder = getHttpResponse("/setup/sponsor_slides")
|
||||
assert.Equal(t, 200, recorder.Code)
|
||||
assert.Contains(t, recorder.Body.String(), "Sponsor Line 2 revised")
|
||||
sponsorSlide, _ := db.GetSponsorSlideById(3)
|
||||
assert.NotNil(t, sponsorSlide)
|
||||
|
||||
recorder = postHttpResponse("/setup/sponsor_slides", "action=save&image=Image2.gif&id=2")
|
||||
assert.Equal(t, 302, recorder.Code)
|
||||
recorder = getHttpResponse("/setup/sponsor_slides")
|
||||
assert.Equal(t, 200, recorder.Code)
|
||||
assert.NotContains(t, recorder.Body.String(), "Image.gif")
|
||||
assert.Contains(t, recorder.Body.String(), "Image2.gif")
|
||||
sponsorSlide, _ = db.GetSponsorSlideById(3)
|
||||
assert.NotNil(t, sponsorSlide)
|
||||
}
|
||||
@@ -6,12 +6,12 @@
|
||||
package main
|
||||
|
||||
type SponsorSlide struct {
|
||||
Id int
|
||||
Subtitle string
|
||||
Line1 string
|
||||
Line2 string
|
||||
Image string
|
||||
Priority string
|
||||
Id int
|
||||
Subtitle string
|
||||
Line1 string
|
||||
Line2 string
|
||||
Image string
|
||||
DisplayTimeSec int
|
||||
}
|
||||
|
||||
func (database *Database) CreateSponsorSlide(sponsorSlide *SponsorSlide) error {
|
||||
|
||||
61
sponsor_slide_test.go
Normal file
61
sponsor_slide_test.go
Normal file
@@ -0,0 +1,61 @@
|
||||
// Copyright 2014 Team 254. All Rights Reserved.
|
||||
// Author: pat@patfairbank.com (Patrick Fairbank)
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestGetNonexistentSponsorSlide(t *testing.T) {
|
||||
clearDb()
|
||||
defer clearDb()
|
||||
db, err := OpenDatabase(testDbPath)
|
||||
assert.Nil(t, err)
|
||||
defer db.Close()
|
||||
|
||||
sponsorSlide, err := db.GetSponsorSlideById(1114)
|
||||
assert.Nil(t, err)
|
||||
assert.Nil(t, sponsorSlide)
|
||||
}
|
||||
|
||||
func TestSponsorSlideCrud(t *testing.T) {
|
||||
clearDb()
|
||||
defer clearDb()
|
||||
db, err := OpenDatabase(testDbPath)
|
||||
assert.Nil(t, err)
|
||||
defer db.Close()
|
||||
|
||||
sponsorSlide := SponsorSlide{0, "Subtitle", "Line 1", "Line 2", "", 10}
|
||||
db.CreateSponsorSlide(&sponsorSlide)
|
||||
sponsorSlide2, err := db.GetSponsorSlideById(1)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, sponsorSlide, *sponsorSlide2)
|
||||
|
||||
sponsorSlide.Line1 = "Blorpy"
|
||||
db.SaveSponsorSlide(&sponsorSlide)
|
||||
sponsorSlide2, err = db.GetSponsorSlideById(1)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, sponsorSlide.Line1, sponsorSlide2.Line1)
|
||||
|
||||
db.DeleteSponsorSlide(&sponsorSlide)
|
||||
sponsorSlide2, err = db.GetSponsorSlideById(1)
|
||||
assert.Nil(t, err)
|
||||
assert.Nil(t, sponsorSlide2)
|
||||
}
|
||||
|
||||
func TestTruncateSponsorSlides(t *testing.T) {
|
||||
clearDb()
|
||||
defer clearDb()
|
||||
db, err := OpenDatabase(testDbPath)
|
||||
assert.Nil(t, err)
|
||||
defer db.Close()
|
||||
|
||||
sponsorSlide := SponsorSlide{0, "Subtitle", "Line 1", "Line 2", "", 10}
|
||||
db.CreateSponsorSlide(&sponsorSlide)
|
||||
db.TruncateSponsorSlides()
|
||||
sponsorSlide2, err := db.GetSponsorSlideById(1)
|
||||
assert.Nil(t, err)
|
||||
assert.Nil(t, sponsorSlide2)
|
||||
}
|
||||
@@ -325,9 +325,9 @@ var initializeSponsorDisplay = function() {
|
||||
active = '';
|
||||
|
||||
if(sponsors[index]['Image'].length)
|
||||
$('#sponsorContainer').append('<div class="item '+active+'" data-interval="'+sponsors[index]["Priority"]*1000+'"><img src="/static/img/sponsors/'+sponsors[index]['Image']+'" /><h1>'+sponsors[index]['Subtitle']+'</h1></div>');
|
||||
$('#sponsorContainer').append('<div class="item '+active+'" data-interval="'+sponsors[index]["DisplayTimeSec"]*1000+'"><img src="/static/img/sponsors/'+sponsors[index]['Image']+'" /><h1>'+sponsors[index]['Subtitle']+'</h1></div>');
|
||||
else
|
||||
$('#sponsorContainer').append('<div class="item '+active+'" data-interval="'+sponsors[index]["Priority"]*1000+'"><h2>'+sponsors[index]['Line1']+'<br />'+sponsors[index]['Line2']+'</h2><h1>'+sponsors[index]['Subtitle']+'</h1></div>');
|
||||
$('#sponsorContainer').append('<div class="item '+active+'" data-interval="'+sponsors[index]["DisplayTimeSec"]*1000+'"><h2>'+sponsors[index]['Line1']+'<br />'+sponsors[index]['Line2']+'</h2><h1>'+sponsors[index]['Subtitle']+'</h1></div>');
|
||||
|
||||
});
|
||||
|
||||
|
||||
@@ -6,38 +6,43 @@
|
||||
<legend>Sponsor Slides Configuration</legend>
|
||||
<p>Place images in /static/img/sponsors/</p>
|
||||
{{range $sponsorSlide := .SponsorSlides}}
|
||||
<form class="form-horizontal existing" action="/setup/sponsor_slides" method="POST" data-priority="{{$sponsorSlide.Priority}}">
|
||||
<form class="form-horizontal existing" action="/setup/sponsor_slides" method="POST">
|
||||
<div class="form-group">
|
||||
<div class="col-lg-7">
|
||||
<input type="hidden" name="id" value="{{$sponsorSlide.Id}}" />
|
||||
<div class="form-group imagetoggle">
|
||||
<label for="image" class="col-sm-5 control-label">Image File Name</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" name="image" placeholder="image.svg" value="{{$sponsorSlide.Image}}">
|
||||
<input type="text" class="form-control" name="image" placeholder="image.svg"
|
||||
value="{{$sponsorSlide.Image}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden imagetoggle">
|
||||
<label for="line1" class="col-sm-5 control-label">Line 1 Text</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" value="{{$sponsorSlide.Line1}}" name="line1" placeholder="Chezy">
|
||||
<input type="text" class="form-control" value="{{$sponsorSlide.Line1}}" name="line1"
|
||||
placeholder="Chezy">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden imagetoggle">
|
||||
<label for="line2" class="col-sm-5 control-label">Line 2 Text</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" value="{{$sponsorSlide.Line2}}" name="line2" placeholder="Industries">
|
||||
<input type="text" class="form-control" value="{{$sponsorSlide.Line2}}" name="line2"
|
||||
placeholder="Industries">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="subtitle" class="col-sm-5 control-label">Subtitle Text</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" name="subtitle" value="{{$sponsorSlide.Subtitle}}" placeholder="Gold Sponsor">
|
||||
<input type="text" class="form-control" name="subtitle" value="{{$sponsorSlide.Subtitle}}"
|
||||
placeholder="Gold Sponsor">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="priority" class="col-sm-5 control-label">Display Time (s)</label>
|
||||
<label for="displayTimeSec" class="col-sm-5 control-label">Display Time (s)</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="number" class="form-control" name="priority" value="{{$sponsorSlide.Priority}}" placeholder="10">
|
||||
<input type="number" class="form-control" name="displayTimeSec"
|
||||
value="{{$sponsorSlide.DisplayTimeSec}}" placeholder="10">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -79,9 +84,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="priority" class="col-sm-5 control-label">Display Time (s)</label>
|
||||
<label for="displayTimeSec" class="col-sm-5 control-label">Display Time (s)</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="number" class="form-control" name="priority" placeholder="10">
|
||||
<input type="number" class="form-control" name="displayTimeSec" placeholder="10">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -97,17 +102,19 @@
|
||||
</div>
|
||||
{{end}}
|
||||
{{define "script"}}
|
||||
<script type='text/javascript'>
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('form.existing').each(function(index){
|
||||
if(!$(this).find('input[name=image]').val().length && ($(this).find('input[name=line2]').val().length || $(this).find('input[name=line1]').val().length))
|
||||
$(this).find('.imagetoggle').toggleClass('hidden');
|
||||
$("form.existing").each(function(index){
|
||||
if (!$(this).find("input[name=image]").val().length && ($(this).find("input[name=line2]").val().length
|
||||
|| $(this).find("input[name=line1]").val().length)) {
|
||||
$(this).find(".imagetoggle").toggleClass("hidden");
|
||||
}
|
||||
});
|
||||
|
||||
$('button[name=toggleImage]').click(function(event){
|
||||
$("button[name=toggleImage]").click(function(event) {
|
||||
event.preventDefault();
|
||||
$(this).parents('form').find('.imagetoggle').toggleClass('hidden');
|
||||
$(this).parents('form').find('.imagetoggle input').val('');
|
||||
$(this).parents("form").find(".imagetoggle").toggleClass("hidden");
|
||||
$(this).parents("form").find(".imagetoggle input").val("");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user