Skip to content

Instantly share code, notes, and snippets.

@melvinram
Created January 24, 2012 20:29
Show Gist options
  • Save melvinram/f028102c7633780a8fe4 to your computer and use it in GitHub Desktop.
Save melvinram/f028102c7633780a8fe4 to your computer and use it in GitHub Desktop.
<!DOCTYPE html><html><head>
<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css">
<script src="https://js.stripe.com/v1/" type="text/javascript"></script>
<script src="/assets/application.js" type="text/javascript"></script>
<meta content="pk_HsVBbmyTRHjE3haYtTQLM4Lje4v" name="stripe-key">
</head>
<body>
<div id="header">
<div class="page_width">
<div class="site_title"><p class="title">Connect A Car</p></div>
<div class="session_links"><a href="/users/sign_in">Log In</a><a href="/users/sign_up">Sign Up</a></div>
</div>
</div>
<div id="center">
<div class="page_width">
<h1 class="vehicle_title">
Toyota Camry
</h1>
<div class="price">$20,000.00</div>
<div class="description">The latest in awesomeness.</div>
<h2>Bring The Car To Me For $9.95</h2>
<form accept-charset="UTF-8" action="/appointments" class="new_appointment" id="new_appointment" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"></div>
<input id="appointment_stripe_card_token" name="appointment[stripe_card_token]" type="hidden">
<h3>Appointment Details</h3>
<div class="field">
<label for="appointment_full_name">Full Name</label>
<input id="appointment_full_name" name="appointment[full_name]" size="30" type="text">
</div>
<div class="field">
<label for="appointment_date">Date</label>
<select id="appointment_date_2i" name="appointment[date(2i)]">
<option value="">Month</option>
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<select id="appointment_date_3i" name="appointment[date(3i)]">
<option value="">Day</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select id="appointment_date_1i" name="appointment[date(1i)]">
<option value="">Year</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
</select>
</div>
<div class="field">
<label for="appointment_time">Time</label>
<input id="appointment_time_1i" name="appointment[time(1i)]" type="hidden" value="">
<input id="appointment_time_2i" name="appointment[time(2i)]" type="hidden">
<input id="appointment_time_3i" name="appointment[time(3i)]" type="hidden">
<select id="appointment_time_4i" name="appointment[time(4i)]">
<option value="">Hour</option>
<option value="00">12 AM</option>
<option value="01">01 AM</option>
<option value="02">02 AM</option>
<option value="03">03 AM</option>
<option value="04">04 AM</option>
<option value="05">05 AM</option>
<option value="06">06 AM</option>
<option value="07">07 AM</option>
<option value="08">08 AM</option>
<option value="09">09 AM</option>
<option value="10">10 AM</option>
<option value="11">11 AM</option>
<option value="12">12 PM</option>
<option value="13">01 PM</option>
<option value="14">02 PM</option>
<option value="15">03 PM</option>
<option value="16">04 PM</option>
<option value="17">05 PM</option>
<option value="18">06 PM</option>
<option value="19">07 PM</option>
<option value="20">08 PM</option>
<option value="21">09 PM</option>
<option value="22">10 PM</option>
<option value="23">11 PM</option>
</select>
: <select id="appointment_time_5i" name="appointment[time(5i)]">
<option value="">Minute</option>
<option value="00">00</option>
<option value="15">15</option>
<option value="30">30</option>
<option value="45">45</option>
</select>
</div>
<div class="field">
<label for="appointment_location">Location</label>
<input id="appointment_location" name="appointment[location]" size="30" type="text">
</div>
<h3>Payment Details</h3>
<div class="field">
<label for="card_number">Credit Card Number</label>
<input id="card_number" type="text">
</div>
<div class="field">
<label for="card_code">Security Code on Card (CVV)</label>
<input id="card_code" type="text">
</div>
<div class="field">
<label for="card_month">Card Expiration</label>
<select id="card_month">
<option value="1">1 - January</option>
<option value="2">2 - February</option>
<option value="3">3 - March</option>
<option value="4">4 - April</option>
<option value="5">5 - May</option>
<option value="6">6 - June</option>
<option value="7">7 - July</option>
<option value="8">8 - August</option>
<option value="9">9 - September</option>
<option value="10">10 - October</option>
<option value="11">11 - November</option>
<option value="12">12 - December</option>
</select>
<select id="card_year">
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
<option value="2023">2023</option>
<option value="2024">2024</option>
<option value="2025">2025</option>
<option value="2026">2026</option>
<option value="2027">2027</option>
</select>
</div>
<div class="action">
<input name="commit" type="submit" value="Pay Now &amp; Request Appointment">
</div>
<div id="stripe_error">
<noscript>JavaScript is not enabled and is required for this form. First enable it in your web browser settings.</noscript>
</div>
</form>
</div>
</div>
<div id="footer">
<div class="page_width">
Copyright 2012
</div>
</div>
<iframe src="https://api.stripe.com/js/v1/apitunnel.html#http%3A%2F%2F127.0.0.1%3A60593%2Fvehicles%2F1036" name="stripeFrame1327436828652" id="stripeFrame1327436828652" frameborder="0" scrolling="no" allowtransparency="true" width="0" height="0" style="position:absolute;top:0;left:0;width:0;height:0"></iframe></body></html>/
it "should allow you to schedule an appointment and pay for the appointment", :js => true do
visit vehicle_path(@camry)
save_and_open_page
fill_in "appointment_full_name", :with => "John Doe"
select "January", :from => "appointment_date_2i"
select "1", :from => "appointment_date_3i"
select (Date.today.year + 5).to_s, :from => "appointment_date_1i"
select "3 PM", :from => "appointment_time_4i"
select "00", :from => "appointment_time_5i"
fill_in "appointment_location", :with => "555 Somewhere Street Somecity CA 55555"
fill_in "card_number", :with => "4242424242424242"
fill_in "card_code", :with => "555"
select "1 - January", :from => "card_month"
select 5.years.from_now.year.to_s, :from => "card_year"
save_and_open_page
# lambda{ click_button "Pay Now & Request Appointment" }.should change(Appointment, :count)
# current_path.should == appointment_path(Appointment.last.id)
# page.should have_content "Your appointment was successfully requested. Once we confirm with the dealership, we'll send you a confirmation email."
# revenue should increase by the appointment cost.
# make sure a new user was created by checking if it shows log out link.
# in the admin area, I should see a new appointment request on the dashboard
# when viewing the appointment, I should have a button to confirm and charge their card.
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment