Created
March 30, 2012 17:53
-
-
Save 3den/2253369 to your computer and use it in GitHub Desktop.
specs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
All examples were filtered out; ignoring {:focus=>true} | |
Admin::Orders::CreditCardsController PUT #update | |
when credit card is valid | |
should be success | |
when update fails | |
should render form | |
Api::HealthController | |
GET #index | |
with a valid IP | |
Connection refused - connect(2) | |
responds with success | |
Connection refused - connect(2) | |
responce body is a JSON hash | |
without a valid IP | |
raises an 'CanCan::AccessDenied' error | |
GET #show | |
returns a RecordNotFound error for missing features | |
returns a valid response for db | |
returns a valid response for search | |
Connection refused - connect(2) | |
returns a valid response for tax | |
returns a valid response for auth | |
ApplicationController Helpers | |
#kiosk_mode? | |
should return session[:kiosk_mode] | |
ApplicationController Filters | |
#no_browser_cache_on_kiosk_mode | |
should set response header to disable cache browser if kiosk mode is enabled | |
Checkouts::ReviewsController PUT #show | |
should logout when kiosk mode is enabled | |
CreditCardsController | |
GET #index | |
should return the user's credit cards | |
should be success | |
GET #new | |
should assign a new credit card | |
should the credit card have a billing address | |
should the billing address have the user's country | |
POST #create | |
when credit card is saved | |
when is a xhr request | |
should return nothing | |
when is a html request | |
should redirect to credit card index page | |
when credit card is not saved | |
when is a xhr request | |
should render the new card form partial | |
when is a html request | |
should rendere the new view | |
KioskController PUT # update | |
should toggle kiosk mode | |
ProductSearchesController filters | |
redirect_if_no_search_parameters | |
should redirect to new_product_search_path if no search params present | |
Users::RegistrationsController PUT #update | |
when password params exists | |
should update with password | |
when password params does not exists | |
should update with password | |
when update the user is successfull | |
when the call is via XHR | |
should be success | |
when the call is via HTML | |
should redirect to after_update_path_for user | |
when update the user fails | |
when the call is via XHR | |
should render the form partial | |
FactoryGirl::Syntax::Vintage::Factory | |
with factory for :admin_user | |
is valid | |
with factory for :blacklist | |
is valid | |
with factory for :mailer_sent_to_collection | |
Connection refused - connect(2) | |
is valid | |
with factory for :store_location | |
is valid | |
with factory for :currency_exchange | |
is valid | |
with factory for :ebook_properties | |
is valid | |
with factory for :coupon_owner | |
is valid | |
with factory for :rental_no_book | |
is valid | |
with factory for :purchase_option | |
is valid | |
with factory for :store_term | |
is valid | |
with factory for :mailer_third_reminder | |
Connection refused - connect(2) | |
is valid | |
with factory for :user_with_default_address | |
is valid | |
with factory for :territory_manager | |
is valid | |
with factory for :store | |
is valid | |
with factory for :valid_address | |
is valid | |
with factory for :section_book | |
is valid | |
with factory for :digital_rental | |
is valid | |
with factory for :product_item | |
is valid | |
with factory for :mailer_collateral_charge_failed | |
Connection refused - connect(2) | |
is valid | |
with factory for :receiving_log | |
is valid | |
with factory for :course | |
is valid | |
with factory for :mailer_second_reminder | |
Connection refused - connect(2) | |
is valid | |
with factory for :section | |
is valid | |
with factory for :percent_coupon | |
is valid | |
with factory for :book_isbn10 | |
is valid | |
with factory for :capybara_store | |
is valid | |
with factory for :contract_accounting_contact | |
is valid | |
with factory for :order_response | |
is valid | |
with factory for :email_template | |
is valid | |
with factory for :digital_sale | |
is valid | |
with factory for :product | |
is valid | |
with factory for :rental_item | |
is valid | |
with factory for :coupon | |
is valid | |
with factory for :order_transaction | |
Connection refused - connect(2) | |
is valid | |
with factory for :mailer_extension_charge | |
Connection refused - connect(2) | |
is valid | |
with factory for :digital_item | |
is valid | |
with factory for :school | |
is valid | |
with factory for :share_item | |
is valid | |
with factory for :affiliate_user | |
is valid | |
with factory for :user | |
is valid | |
with factory for :mailer_first_reminder | |
Connection refused - connect(2) | |
is valid | |
with factory for :book_with_ebook | |
is valid | |
with factory for :contract_owner | |
is valid | |
with factory for :sale | |
is valid | |
with factory for :generic_order_note | |
is valid | |
with factory for :order | |
is valid | |
with factory for :item_to_downgrade | |
is valid | |
with factory for :allow_ip | |
is valid | |
with factory for :order_item_ebook | |
is valid | |
with factory for :search_log | |
is valid | |
with factory for :department | |
is valid | |
with factory for :mailer_fifth_reminder | |
Connection refused - connect(2) | |
is valid | |
with factory for :shipping_customer | |
is valid | |
with factory for :order_item | |
is valid | |
with factory for :commission_payment | |
is valid | |
with factory for :mailer_log | |
Connection refused - connect(2) | |
is valid | |
with factory for :authorization | |
Connection refused - connect(2) | |
is valid | |
with factory for :shipping_box | |
is valid | |
with factory for :invalid_address | |
is valid | |
with factory for :order_note | |
is valid | |
with factory for :book | |
is valid | |
with factory for :rental | |
is valid | |
with factory for :blacklisted_user | |
is valid | |
with factory for :subscription_item | |
is valid | |
with factory for :store_email_template | |
is valid | |
with factory for :adoption_task | |
is valid | |
with factory for :credit_card | |
is valid | |
with factory for :book_properties | |
is valid | |
with factory for :extension | |
is valid | |
with factory for :canadian_order | |
is valid | |
with factory for :address | |
is valid | |
with factory for :credit_card_2 | |
is valid | |
with factory for :transfer | |
is valid | |
with factory for :mailer_fourth_reminder | |
Connection refused - connect(2) | |
is valid | |
with factory for :business_rule | |
is valid | |
with factory for :adoption | |
is valid | |
with factory for :canadian_address | |
is valid | |
with factory for :adopted_book | |
is valid | |
with factory for :sourced_item | |
is valid | |
with factory for :password_reset_email_template | |
is valid | |
with factory for :contact | |
is valid | |
with factory for :one_order_item | |
is valid | |
Admin::IssuesHelper | |
case type menu for 'Shipment Level' | |
should contain case type 'Extra item' | |
should contain case type 'Incorrect item' | |
should contain case type 'Missing item' | |
should contain case type 'Package empty' | |
should contain case type 'Unable to process' | |
should contain 5 case types | |
case type menu for 'Item Level' | |
should contain case type 'Late rental return' | |
should contain case type 'Return to customer' | |
should contain case type 'Damage' | |
should contain case type 'Other' | |
should contain 4 case types | |
Admin::OrdersHelper | |
.order_response_message | |
should return a formatted message | |
.transaction_message | |
when the order is an Order | |
Connection refused - connect(2) | |
should return the transaction type | |
when the order is an OrderItem | |
Connection refused - connect(2) | |
should return the transaction type | |
Connection refused - connect(2) | |
should return the id | |
Connection refused - connect(2) | |
should return the product | |
when is a free extension/buyout | |
Connection refused - connect(2) | |
should return No charge | |
when is not a free extension/buyout | |
Connection refused - connect(2) | |
should return the amount | |
Admin::ReceivingsHelper | |
create_reject_link | |
Connection refused - connect(2) | |
should return the link to convert to purchase page | |
create_receipt_links | |
with orders | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should include "2 books checked-in" | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should not include the receipt to print | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should have the 'Print Recipt' link | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should not include the 'Clear Books' button | |
without orders | |
should include "0 books checked-in" | |
the 'Print Recipt' link should not print | |
should not include the receipt to print | |
Admin::Reports::PopularsHelper | |
.popular_books | |
should return an array with data of popular books | |
should return the isbn of thte book | |
should return the title of the book | |
should return the publisher of the book | |
should return the average price of the book | |
should return the avg retal period of the book | |
ApplicationHelper | |
returns display visible if true | |
returns display none if false | |
rental expiration helpers | |
my rentals page returns green when rental days left > 2 week | |
my rentals page returns yellow when rental days left <=3 days | |
header helper green when all rentals expire > 2 weeks | |
header helper red when any rentals expire =< 3 days | |
menu array for admin/affiliate user | |
for orders and receiving admin | |
for receiving admin only | |
store_rent? | |
should return true if the store rents | |
should return true if the store is nil | |
should return false if the store just buy | |
store_buy? | |
should return true if the store is buy? | |
should return true if the store is nil | |
should return false if the store is rent_only | |
facebook link to | |
creates the facebook uri with correct querystring | |
roles_list | |
returns the roles corresponding to an AffiliateUser | |
returns the roles corresponding to an AdminUser | |
map | |
should return an image tag with the map | |
should return the map image with ssl | |
CheckoutsHelper | |
with a rental | |
links to terms | |
links to shipping | |
credit cards | |
returns credit cards for us store | |
returns credit cards for canadian stores | |
FormattingHelper | |
#number_to_phone | |
turns a number into a phone number without an area code | |
turns a number into a phone number with an area code | |
turns a number into a phone number with an extension | |
prices | |
displays the canadian dollar since the current_store is canadian | |
returns the function | |
FormsHelper | |
returns a div with an error message in it | |
returns nothing | |
.pre_fill_states | |
when the arg is a string | |
should return the USA states when arg is 'US' | |
should return the CANADA states when arg is 'CA' | |
should return the an empty array when arg is 'another value' | |
when the arg is a form object | |
should return the USA states when form object has country with 'US' value | |
should return the CANADA states when form object has country with 'CA' value | |
should return an empty array when form object has country with 'another_value' value | |
PurchaseOptionsHelper | |
displays something when new | |
displays something when used | |
displays the period without the price | |
Bind | |
grabs whatever attributes it can without deleting the keys | |
deletes the attributes as it grabs them | |
BookFinder | |
returns a blank array | |
finds books by isbns | |
marks errors | |
splits on new lines, commas, and spaces | |
BooksMailer | |
#build_sub_vars | |
with a digital item | |
should parse {{order_items_formatted_list}} with PIN and URL | |
when there is a store | |
should parse {{customer_first_name}} as user.first_name | |
should parse {{customer_last_name}} as user.last_name | |
should parse {{order_id}} as order.id | |
should parse {{rental_return_due_date}} as item.to_with_extensions | |
should parse {{order_item_name}} as item.option.book.name | |
should parse {{rental_return_due_date}} as item.to_with_extensions | |
should parse {{rental_time_period}} as item.period | |
should parse {{rental_order_ship_date}} as item.shipping_method.estimate | |
should parse {{tracking_number}} as item.sourced_item.tracking_number | |
should parse {{transaction_type}} | |
should parse {{rentals_page_link}} | |
should parse {{affiliate_text}} | |
when there is no store | |
should parse {{affiliate_text}} and return nil | |
EmailValid | |
should validates emails with trailing spaces | |
should not validate wrong emails | |
Epay | |
.authorize | |
with a digital item | |
returns the 'download_url' and 'pin' | |
without a digital item | |
raises Epay::NonDigitalItemError | |
#api_url | |
includes the ENDPOINT and PUBLIC_KEY | |
#void | |
refunds a book (PENDING: Not yet implemented) | |
#recover_pin | |
retrieves a lost pin number (PENDING: Not yet implemented) | |
FedexAddress | |
with a valid address | |
takes an address | |
saves the address when valid and confirmed | |
fixes the zipcode | |
status must be 'confirmed' | |
with an invalid street | |
doesn't save the address when not confimed the first time | |
populates errors when address is invalid or unconfirmed | |
sugests a corrected address | |
status must be 'modified' | |
with an invalid city | |
fixes the city | |
status must be 'modified' | |
with a invalid address | |
status must be 'unrecognized' | |
HasDefaults | |
user defaults | |
set a default credit card | |
have only one default credit card | |
set a default address | |
have only one default address | |
many users with default addresses | |
does not change the default of other users | |
changing the default address of one user do not affect other users | |
Payment::CreditCardDeleter | |
has a delete method | |
#delete | |
DEPRECATION WARNING: class_inheritable_attribute is deprecated, please use class_attribute method instead. Notice their behavior are slightly different, so refer to class_attribute documentation first. (called from include at /Users/eden/.rvm/gems/ruby-1.8.7-p352@rentwb/bundler/gems/active_merchant-78c469f897af/lib/active_merchant/billing/gateway.rb:59) | |
DEPRECATION WARNING: class_inheritable_attribute is deprecated, please use class_attribute method instead. Notice their behavior are slightly different, so refer to class_attribute documentation first. (called from include at /Users/eden/.rvm/gems/ruby-1.8.7-p352@rentwb/bundler/gems/active_merchant-78c469f897af/lib/active_merchant/billing/gateway.rb:59) | |
allows deletion of non-default card | |
with no open rentals | |
deletes any non-default card | |
prevents deletion of the default card if other cards cant be authorized | |
with open rentals | |
Connection refused - connect(2) | |
does not delete card if default is only card | |
Connection refused - connect(2) | |
deletes it and makes new authorized default | |
Connection refused - connect(2) | |
wont delete the default if it cant authorize it | |
Payment::Gateway | |
.store_card | |
sets the ext_cc_id | |
adds mask to the number | |
sets front masked number | |
resets the ext_cc_id to nil in case of fail | |
returns errors if it's not valid | |
don't save an invalid card | |
doesn't try to store if the address is not valid | |
with a canadian user (plugnpay) | |
DEPRECATION WARNING: class_inheritable_attribute is deprecated, please use class_attribute method instead. Notice their behavior are slightly different, so refer to class_attribute documentation first. (called from /Users/eden/.rvm/gems/ruby-1.8.7-p352@rentwb/bundler/gems/active_merchant-78c469f897af/lib/active_merchant/billing/gateways/plugnpay.rb:5) | |
DEPRECATION WARNING: class_inheritable_attribute is deprecated, please use class_attribute method instead. Notice their behavior are slightly different, so refer to class_attribute documentation first. (called from /Users/eden/.rvm/gems/ruby-1.8.7-p352@rentwb/bundler/gems/active_merchant-78c469f897af/lib/active_merchant/billing/gateways/plugnpay.rb:5) | |
sets the ext_cc_id | |
adds mask to the number | |
sets front masked number | |
.update_card | |
updates the address with no cc changes | |
updates the credit card | |
doesn't updates the credit card if it's not valid | |
.delete_card | |
deletes the card from the gateway | |
deletes the card anyway | |
.charge! | |
purchases an amount and returns the requestId | |
should work even when coutry is passed as nil | |
returns an error if it can't purchase | |
.authorize! | |
with cybersource | |
purchases an amount and returns the requestId | |
with plugnpay | |
purchases an amount and returns the requestId | |
returns an 'authorizationCode' | |
.authorize | |
returns true if the card authorize the amount passed in | |
returns false if the card do not authorize the amount passed in | |
Payment::Plugnpay | |
#storing_card | |
authorize for $1,00 and revert the authorization (PENDING: Temporarily disabled with xit) | |
Shipping | |
should generate a tracking number with the shipping label | |
should generate a shipping label | |
should validate the shipping address | |
.get_rate | |
should return net amount > 0 | |
should return rate in USD if not specified | |
should return the same service type requested | |
Solr | |
returns a set of products | |
returns less than the number of products per page | |
contains Product methods such as id and name | |
contains book properties such as isbn13 and authors | |
contains stock attributes | |
Taxware | |
under normal operation | |
/Users/eden/Code/ruby/rails/rentwb/lib/taxware.rb:207: warning: Object#id will be deprecated; use Object#object_id | |
Connection refused - connect(2) | |
should return tax amount | |
when using static XML for Health API check | |
Connection refused - connect(2) | |
should not raise an error | |
Connection refused - connect(2) | |
should return tax amount | |
failures | |
Connection refused | |
should return 10% taxes by default if it can't connect | |
address_to option was missing. | |
should return zero taxes when options are not passed in | |
should calculate an item's pro-rata share of taxes | |
Connection refused - connect(2) | |
when returning invalid XML | |
address_to option was missing. | |
when Taxware::AddressToError is raised | |
billing_address option was missing. | |
when Taxware::BillingAddressError is raised | |
order option was missing. | |
when Taxware::OrderError is raised | |
Translater | |
translates names | |
doesn't change good names | |
CheckInMailer | |
convert to purchase | |
renders the headers | |
rental extended | |
renders the headers | |
OrderMailer | |
order confirmation | |
Connection refused - connect(2) | |
renders the headers | |
order shipped confirmation | |
Connection refused - connect(2) | |
renders the headers | |
order delivered confirmation | |
renders the headers | |
first_reminder_at_7_days_from_due_date | |
when store is a depot | |
Connection refused - connect(2) | |
renders the headers | |
when store is not a depot | |
Connection refused - connect(2) | |
renders the headers | |
second_reminder_at_3_days_from_due_date | |
when store is a depot | |
Connection refused - connect(2) | |
renders the headers | |
when store is not a depot | |
Connection refused - connect(2) | |
renders the headers | |
third_reminder_at_1_day_from_due_date | |
when store is a depot | |
Connection refused - connect(2) | |
renders the headers | |
when store is not a depot | |
Connection refused - connect(2) | |
renders the headers | |
fourth_reminder_on_due_date | |
when store is a depot | |
Connection refused - connect(2) | |
renders the headers | |
when store is not a depot | |
Connection refused - connect(2) | |
renders the headers | |
fifth_reminder_at_1_day_past_due_date | |
when store is a depot | |
Connection refused - connect(2) | |
renders the headers | |
when store is not a depot | |
Connection refused - connect(2) | |
renders the headers | |
extension_charge | |
Connection refused - connect(2) | |
renders the headers | |
Collateral Charge Failed | |
Connection refused - connect(2) | |
renders the headers | |
Sent to Collection | |
Connection refused - connect(2) | |
renders the headers | |
RegistrationMailer | |
registration confirmation | |
renders the headers | |
password reset | |
renders the headers | |
ShippingMailer | |
rental check-in | |
renders the headers | |
damaged book | |
renders the headers | |
UserMailer | |
order confirmation | |
renders the headers | |
has the order id in the body | |
share email | |
body should have the store name | |
renders store name in the subject | |
Address | |
Associations | |
should belong to addressable | |
Validations | |
should require address_1 to be set | |
should require city to be set | |
should require zipcode to be set | |
should require phone to be set | |
should allow country to be set to "US" | |
should not allow country to be set to "united_fakes" | |
should ensure address_1 has a length of at most 100 | |
should ensure address_2 has a length of at most 100 | |
should ensure first_name has a length of at most 30 | |
should ensure last_name has a length of at most 30 | |
warns on incorrect phone number | |
doesn't accept a phone number greater than 10 digits long | |
accepts an extension up to 5 digits long | |
allows phone numbers with vanity | |
should allow international phone number with EPP format | |
an address | |
returns true if it's a po box | |
returns false if it's not a po box | |
turns into a hash for activemerchant to receive | |
has a formats to hash method | |
formats itself to a string | |
fedex verification | |
verification status must be confirmed | |
suggests a corrected address and zipcode | |
AdminUser | |
associations | |
should have many order_logs | |
should have many order_notes | |
should have many created_coupons | |
instance methods | |
.full_name | |
return first_name and last name | |
AdoptionTask | |
should belong to term | |
should calculate percentage complete | |
should retrieve list of processing tasks | |
AffiliateUser | |
associations | |
should belong to store | |
should have one address | |
should have many created_coupons | |
instance methods | |
.full_name | |
return first_name and last name | |
.default_address | |
return the user's address | |
.store_nane | |
return the user's associated store name | |
Authorization | |
associations | |
should belong to order | |
should have many transactions | |
should have many items through order | |
validations | |
should require order_id to be set | |
should require amount_in_cents to be set | |
should allow amount_in_cents to be set to 100 | |
should not allow amount_in_cents to be set to "a" | |
an authorization | |
#must_charge? | |
when all items are shipped | |
should be true | |
should be false if is 'monitored' | |
when only some items are shipped | |
should be true if is older then 2 days | |
should be false if is 'monitored' | |
should be false if is new | |
when nothing is shipped | |
should be false | |
#must_cancel? | |
when is older then 4 days | |
should be true if nothing was shipped | |
should be false if something was shipped | |
#older_than | |
should be older than tomorow | |
should not be older than yesterday | |
when authorized | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
do NOT charge 'monitored' authorizations | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
creates a new authorization record | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should be authorized | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
charged_or_authorized_at should be nil | |
Connection refused - connect(2) | |
do NOT ask the gateway to authorize twice | |
on charge | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should update the transactions state | |
when charge fails | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
raises an error and stays authorizated | |
when authorization fails | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should raise 'AuthorizationError' | |
when is voided | |
voided? should return true | |
with order items | |
when nothing is shipped | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
set all items to_cancel | |
when all items are shipped | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should be all shipped | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
charge the total of the order | |
and an item to ship downgrade | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
uncheck the items to ship downgrade | |
when is old and some items are not shipped | |
Connection refused - connect(2) | |
should not be all shipped | |
Connection refused - connect(2) | |
should be one shipped | |
Connection refused - connect(2) | |
should charge the total amount | |
with a canceled item | |
Connection refused - connect(2) | |
charge only for the open items | |
Blacklist | |
associations | |
should belong to product | |
should belong to store | |
validations | |
should require reason to be set | |
should require product to be set | |
should require case sensitive unique value for product_id scoped to store_id | |
class methods | |
import | |
when import type is merge | |
should merge Blacklist | |
when import type is replace | |
should replace the Blacklist | |
BlacklistedUser | |
add some examples to (or delete) /Users/eden/Code/ruby/rails/rentwb/spec/models/blacklisted_user_spec.rb (PENDING: No reason given) | |
CommissionPayment | |
associations | |
should belong to store | |
should have many orders | |
validations | |
should require store to be set | |
should require period_from to be set | |
should require period_to to be set | |
Coupon | |
validations | |
should require creator to be set | |
should require code to be set | |
should require description to be set | |
should require discount_type to be set | |
should require discount_amount to be set | |
should require start_date to be set | |
should require expiration_date to be set | |
should allow discount_amount to be set to 1 | |
should allow discount_amount to be set to 150 | |
should allow discount_amount to be set to 150.1 | |
should not allow discount_amount to be set to "AAA" | |
associations | |
should have many stores through coupon_owners | |
should have many coupon_owners dependent => destroy | |
dolar discounts | |
Connection refused - connect(2) | |
caulculate the correct amounts | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
apply discount | |
% discounts | |
Connection refused - connect(2) | |
caulculate the correct amounts | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
valid % discount | |
Course | |
returns associated sections sorted by name (ascending) | |
associations | |
should belong to department | |
should have many sections | |
validations | |
should require name to be set | |
should require case sensitive unique value for name scoped to department_id | |
CreditCard | |
Associations | |
should belong to user | |
accepts nested attributes for its billing_address | |
validations | |
should not allow number to be set to "123" | |
should not allow number to be set to "4111111111111111" | |
should not allow number to be set to nil | |
should not allow first_name to be set to nil | |
should not allow last_name to be set to nil | |
should not allow month to be set to nil | |
should not allow year to be set to nil | |
should not allow year to be set to 20011 | |
should not allow verification_value to be set to nil | |
should not allow user_id to be set to nil | |
should not allow card_type to be set to nil | |
should allow year to be set to 11 | |
should allow year to be set to 2011 | |
should allow card_type to be set to "visa" | |
should require user_id to be set | |
should require masked_number to be set | |
should require billing_address to be set | |
should require card_type to be set | |
more validations | |
explains that it could not store the card if there's not ext_id | |
doesn't show ext_cc_id error unless everything else is valid | |
is valid if it has an ext_cc_id | |
does not raise an error on #front_masked_number | |
A credit card | |
has an expiration | |
turns into an activemerchant cc | |
doesn't have a display information if it's a new record | |
has a full name | |
.front_masked_number | |
should return the last four numbers | |
when being set as default | |
Connection refused - connect(2) | |
allows new default for authorized card | |
Connection refused - connect(2) | |
does not allow new default for unauthorized card | |
credit card payment | |
has display information if it's been saved | |
keeps new information if overwritten | |
CurrencyExchange | |
validations | |
should require rate_in_cents to be set | |
should require symbol to be set | |
finds | |
finds the rate for the day | |
conversion | |
returns the conversion for the day based on the country | |
returns the conversion for the previous days based on the country | |
defaults to united_states and today | |
Department | |
returns associated courses sorted by name (ascending) | |
associations | |
should belong to store_term | |
should have many courses | |
validations | |
should require name to be set | |
should require case sensitive unique value for name scoped to store_term_id | |
EmailTemplate | |
validations | |
should require name to be set | |
should require subject to be set | |
should require body to be set | |
Health | |
#db_connection | |
returns 'OK' when a store is found | |
returns 'PROBLEM' when nothing is found | |
#authorizations_charged | |
Connection refused - connect(2) | |
returns 'OK' when a recent authorizations was charged | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
returns 'PROBLEM' when no recent authorizations was charged | |
#calculate_taxes | |
when exceptions are not raised | |
returns 'OK' | |
returns 'PROBLEM' | |
Connection refused - connect(2) | |
when Taxware raises exception | |
Connection refused - connect(2) | |
when Taxware returns :exception option hash | |
#product_search | |
returns 'OK' when items are found | |
returns 'PROBLEM' when there is no item | |
#to_json | |
Connection refused - connect(2) | |
returns a json object with all checks | |
OrderItemEbook | |
associations | |
should belong to order_item | |
validations | |
should require order_item_id to be set | |
should require download_url to be set | |
should validate the masked_pin | |
with an older record | |
should require case sensitive unique value for order_item_id | |
.authorize! | |
sets the 'masked_pin' and 'epay_transaction_id' | |
keeps the virtual 'pin' untouched | |
OrderItem | |
associations | |
should belong to option | |
should belong to order | |
should belong to shipping_box | |
should have one authorization | |
should have many order_notes | |
should have many order_transactions dependent => destroy | |
validations | |
should allow order_type to be set to "Rental" | |
should not allow order_type to be set to "blah" | |
#received? | |
returns true if the item has been flagged as returned by rg | |
returns true if the item has been flagged as returned by depot | |
returns false if the item has not been flagged as returned | |
#product | |
with ebook | |
has ebook properties | |
without ebook | |
has empty ebook properties | |
#purchase_option_type | |
returns the predefined type if it is setted | |
returns the option class when the 'purchase_option_type' is not defined | |
#send_ebook | |
when the item is digital | |
sets the 'state' to 'shipped_with_customer' | |
sets the 'source_status' to 'to_download' and 'is_ditial' to 'true' | |
creates the order_item_ebook | |
updates all transactions 'is_digital' to true | |
when the item is NOT digital | |
returns false and does nothing | |
#days_since_collateral_charge_failed | |
without any collateral_charge_failed on mailer_logs | |
should be 0 | |
with a collateral_charge_failed on mailer logs | |
should be 1 after 1 days | |
should be 5 after 5 days | |
should be 14 after 14 days | |
#transaction_state | |
when the item has one charged order_transaction | |
should be charged | |
when there are no transactions | |
should be 'nil' | |
#custom_unique_tax_identifier | |
returns 'permanentdownload' for DigitalSale option | |
returns 'subscriptiondownload' for DigitalRental option | |
returns 'rental60orless' for Rental option | |
#confirm_cancellation | |
with refundable transactions | |
Connection refused - connect(2) | |
has a refundable transaction before confirm_cancellation | |
Connection refused - connect(2) | |
all transactions should stay authorized | |
Connection refused - connect(2) | |
should void the authorization | |
#process_ship_downgrade | |
with a authorized authorization | |
Connection refused - connect(2) | |
returns true | |
Connection refused - connect(2) | |
do not create a refunt transaction | |
with a charged authorization | |
Connection refused - connect(2) | |
create a refund transaction for the shipping charged | |
Connection refused - connect(2) | |
refund the shipping shipping_cost_for_cancellation | |
Connection refused - connect(2) | |
set ship_to_downgrade to false | |
a product, option and item | |
finds outstanding rentals (PENDING: Temporarily disabled with xit) | |
returns true if the item has the same date_string and option_id | |
returns false if the item has a different date_string and option_id | |
has a name | |
has a list price | |
has a default list price of 100 | |
has a limit amount for misc fee | |
stores the actual price of the purchase option (PENDING: Temporarily disabled with xit) | |
stores the actual price of the purchase option when canadian (PENDING: Temporarily disabled with xit) | |
has a description | |
has a quantity | |
has a from as a date | |
has a to as a date | |
has days left | |
has an option id | |
gets relieved | |
tells us if it's expiring soon | |
tells us if it's coming due | |
tells us if it's due over two weeks | |
has a tracking number for rental returns | |
sets the order type when option is a rental | |
sets the order type when option is a sale (PENDING: Temporarily disabled with xit) | |
sets the order type when option is an extension (PENDING: Temporarily disabled with xit) | |
doesn't overwrite the order_type if you set it manually | |
#shipping_method | |
should return a shipping method if it has an associated address | |
should default to a 48 states shipping method if it does not have an associated address | |
pricing | |
calculates price based on quantity (PENDING: Temporarily disabled with xit) | |
returns the total (PENDING: Temporarily disabled with xit) | |
with canadian | |
converts list_price to CAD (PENDING: Temporarily disabled with xit) | |
converts price to CAD (PENDING: Temporarily disabled with xit) | |
calculates item's due date (days_left) | |
should be within reminder period if due in exactly a week | |
should be due in exactly a week | |
should be due in exactly 3 days | |
should be due tomorrow | |
should due today | |
should be one day past due date | |
calculates item's due date (days_left) with extensions | |
should have extension days left | |
extension days | |
should have extensions | |
should update extension_days when the item has one extension associated | |
should update extension_days when the item has more than one extension associated | |
should be considerated for days_left | |
Trigger email reminders | |
Connection refused - connect(2) | |
should send first reminder at 7 days from due date | |
Connection refused - connect(2) | |
should send second reminder at 3 days from due date | |
Connection refused - connect(2) | |
should send third reminder at 1 day from due date | |
Connection refused - connect(2) | |
should send fourth reminder on due date | |
Connection refused - connect(2) | |
should send fifth reminder at 1 day past due date | |
Process Fedex shipments | |
should process only non-deliverd tracking numbers (e.g., pending or shipped_with_customer) (PENDING: Temporarily disabled with xit) | |
should change pending order item to shipped (PENDING: Temporarily disabled with xit) | |
should mark delivered_at (PENDING: Temporarily disabled with xit) | |
should mark shipped_at (PENDING: Temporarily disabled with xit) | |
cancellation of 10 items (VERY IMPORTANT CASE, Order #46001) | |
Connection refused - connect(2) | |
should calculate shipping cost per item | |
Connection refused - connect(2) | |
should calculate the amount to refund for item id 111619 | |
Connection refused - connect(2) | |
should calculate the amount to refund for item id 111599 | |
Connection refused - connect(2) | |
should calculate the amount to refund for item id 111589 | |
Connection refused - connect(2) | |
should calculate the amount to refund for item id 111571 | |
Connection refused - connect(2) | |
should determine the amount of items to_cancel | |
Connection refused - connect(2) | |
should determine which order item id's to cancel | |
Connection refused - connect(2) | |
should calculate the refund amount threshold | |
Connection refused - connect(2) | |
should determine if refund amount exceeds threshold | |
after successful cancellation | |
Connection refused - connect(2) | |
should set source_status and status to 'canceled' | |
Connection refused - connect(2) | |
should send a 'order_item_canceled_confirmation' email | |
process_cancellations_and_downgrades | |
with all items pending to cancel | |
should have items | |
should have an item with the state to_cancel | |
should have an item with the state to_cancel_pending_refund | |
should have an item with the state cancel_try_again_0 | |
when transaction is authorized | |
and refund works | |
Connection refused - connect(2) | |
should cancel all pending to cancel items | |
Connection refused - connect(2) | |
the transactions should stay 'authorized' | |
Connection refused - connect(2) | |
no refund transactions | |
Connection refused - connect(2) | |
have void transactions | |
and refund fails | |
Connection refused - connect(2) | |
should cancel all pending to cancel items | |
when transaction is charged | |
and refund works | |
Connection refused - connect(2) | |
should cancel all pending to cancel items | |
Connection refused - connect(2) | |
the transactions should stay 'charged' | |
Connection refused - connect(2) | |
have a refund transactions | |
Connection refused - connect(2) | |
no void transactions | |
and refund fails | |
Connection refused - connect(2) | |
should NOT cancel items | |
Connection refused - connect(2) | |
should have NO cancelled items | |
gateway failure | |
Connection refused - connect(2) | |
should send a 'cancellation_amount_too_high' email to customer service | |
Connection refused - connect(2) | |
should set source_status and status to 'canceled' | |
above refund threshold | |
for order item #1 | |
Connection refused - connect(2) | |
should send a 'cancellation_amount_too_high' email to customer service | |
Connection refused - connect(2) | |
should set source_status and status to 'canceled' | |
Connection refused - connect(2) | |
should determine if refund amount exceeds threshold | |
for order item #2 | |
Connection refused - connect(2) | |
should not send a 'cancellation_amount_too_high' email to customer service | |
Connection refused - connect(2) | |
should not set source_status and status to 'canceled' | |
to_cancel_pending_refund | |
item #1 | |
Connection refused - connect(2) | |
should calculate shipping cost per item | |
Connection refused - connect(2) | |
should calculate the amount to refund for item id 1 | |
Connection refused - connect(2) | |
should determine if refund amount exceeds threshold | |
Connection refused - connect(2) | |
should not set source_status and status to 'canceled' for item #1 | |
item #2 | |
Connection refused - connect(2) | |
should not set source_status and status to 'canceled' for item #2 | |
with a discount | |
item #1 | |
Connection refused - connect(2) | |
should calculate shipping cost per item for item #1 | |
Connection refused - connect(2) | |
should calculate the amount to refund for item #1 | |
Connection refused - connect(2) | |
should determine if refund amount exceeds threshold | |
Connection refused - connect(2) | |
should not set source_status and status to 'canceled' for item #1 | |
Connection refused - connect(2) | |
should send a 'order_item_canceled_confirmation' email | |
item #2 | |
Connection refused - connect(2) | |
should calculate shipping cost per item for item #2 | |
Connection refused - connect(2) | |
should calculate the amount to refund for item #2 | |
Connection refused - connect(2) | |
should determine if refund amount exceeds threshold | |
Connection refused - connect(2) | |
should not set source_status and status to 'canceled' for item #2 | |
Connection refused - connect(2) | |
should send a 'order_item_canceled_confirmation' email | |
cannot be cancelled | |
due to having a fee | |
Connection refused - connect(2) | |
should not set source_status and status to 'canceled' for item #1 | |
Connection refused - connect(2) | |
should not send a 'order_item_canceled_confirmation' email | |
Connection refused - connect(2) | |
should send a cannot_be_cancelled email to customer service | |
due to having a refund | |
Connection refused - connect(2) | |
should not set source_status and status to 'canceled' for item #1 | |
Connection refused - connect(2) | |
should not send a 'order_item_canceled_confirmation' email | |
Connection refused - connect(2) | |
should send a cannot_be_cancelled email to customer service | |
due to having an auto_buyout | |
Connection refused - connect(2) | |
should not set source_status and status to 'canceled' for item #1 | |
Connection refused - connect(2) | |
should not send a 'order_item_canceled_confirmation' email | |
Connection refused - connect(2) | |
should send a cannot_be_cancelled email to customer service | |
due to having an auto_extension | |
Connection refused - connect(2) | |
should not set source_status and status to 'canceled' for item #1 | |
Connection refused - connect(2) | |
should not send a 'order_item_canceled_confirmation' email | |
Connection refused - connect(2) | |
should send a cannot_be_cancelled email to customer service | |
due to having a buyout | |
Connection refused - connect(2) | |
should not set source_status and status to 'canceled' for item #1 | |
Connection refused - connect(2) | |
should not send a 'order_item_canceled_confirmation' email | |
Connection refused - connect(2) | |
should send a cannot_be_cancelled email to customer service | |
due to having an extension | |
Connection refused - connect(2) | |
should not set source_status and status to 'canceled' for item #1 | |
Connection refused - connect(2) | |
should not send an cannot_be_cancelled email to the customer | |
Connection refused - connect(2) | |
should send a cannot_be_cancelled email to customer service | |
for a Canadian order | |
for order Item # 1 | |
Connection refused - connect(2) | |
should set source_status and status to 'canceled' | |
Connection refused - connect(2) | |
should send a 'order_item_canceled_confirmation' email | |
for order Item # 2 | |
Connection refused - connect(2) | |
should set source_status and status to 'canceled' | |
Connection refused - connect(2) | |
should send a 'order_item_canceled_confirmation' email | |
manual refunds | |
for buyouts | |
should refund full value for amount | |
should refund taxes | |
should not refund if the amount exceed the limit (order.net_total) | |
for shipping charged | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should refund shipping charged | |
manual fee | |
for rental item | |
should charge shipping_upgrade fee | |
should charge restocking fee | |
should charge misc fee | |
should abort misc fee if the amount exceeds the limit for item | |
should abort misc fee if the amount exceeds the available amount for the order | |
extend_or_purchase! | |
when is not rental or due date has not passed | |
Connection refused - connect(2) | |
when is not a rental should return true | |
Connection refused - connect(2) | |
when days_left is greater or equal than 0 should return true | |
when is a successfull transaction | |
when is an extension | |
Connection refused - connect(2) | |
should log auto_extension | |
Connection refused - connect(2) | |
should log tax charged | |
Connection refused - connect(2) | |
should return true | |
when is a buyout | |
Connection refused - connect(2) | |
should log auto_extension | |
Connection refused - connect(2) | |
should log tax charged | |
Connection refused - connect(2) | |
should return save value | |
Connection refused - connect(2) | |
should option update relieved_at to now | |
Connection refused - connect(2) | |
should update state to closed_by_purchase | |
when is fully refunded | |
Connection refused - connect(2) | |
refunded_total should be $1.00 | |
Connection refused - connect(2) | |
should be fully refunded | |
Connection refused - connect(2) | |
should not extend_or_purchase | |
when the transaction fails | |
Connection refused - connect(2) | |
should create a order response | |
Connection refused - connect(2) | |
should send the collateral charge failed emal when the charge fails for the first time | |
Connection refused - connect(2) | |
should return false | |
after 2 days | |
Connection refused - connect(2) | |
should not send emails | |
Connection refused - connect(2) | |
should not try to charge | |
after 5 days trying to charge | |
Connection refused - connect(2) | |
should sent_to_collection email | |
Connection refused - connect(2) | |
should not sent_to_collection email | |
after 14 days trying to charge | |
Connection refused - connect(2) | |
should sent_to_collection email | |
Connection refused - connect(2) | |
should be sent to collection | |
after 30 days trying to charge | |
Connection refused - connect(2) | |
should sent_to_collection email | |
Connection refused - connect(2) | |
should be sent to collection | |
Credit card tokens | |
order ext_cc_id is nil | |
Connection refused - connect(2) | |
should return nil for PlugnPay auto-cancellation | |
Connection refused - connect(2) | |
should return nil for Plugnpay manual refunds | |
Connection refused - connect(2) | |
should return nil for Plugnpay manual fees | |
credit card ext_cc_id is nil | |
Connection refused - connect(2) | |
should return nil for Cybersource auto-cancellation | |
Connection refused - connect(2) | |
should return nil for Cybersource manual refunds | |
Connection refused - connect(2) | |
should return nil for Cybersource manual fees | |
.try_again_cancellation | |
should update source_status from cancel_try_again_0 to cancel_try_again_1 | |
should return false when source_status is cancel_try_again_1 | |
should update source_status with cancel_try_again_0 from to_cancel | |
should update source_status with cancel_try_again_0 from to_cancel_pending_refund | |
extensions | |
Connection refused - connect(2) | |
should assign the correct creator | |
Connection refused - connect(2) | |
should send the airbrake notification with the id and user email if raise an error | |
.refundable? | |
should return true when from date is lower than 21 days ago | |
should return false when from date is greater than 21 days ago | |
Determine buyout amounts | |
Connection refused - connect(2) | |
should calculate the buyout price | |
Connection refused - connect(2) | |
should return zero if calculated price is negative | |
user cancelations | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
can be canceled by user if status is pending | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
cannot be canceled by user if was created more than 2 hours ago | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should change the state when canceled | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should change the source_status when canceled | |
.process_extension_without_charge | |
when is a buyout | |
Connection refused - connect(2) | |
should update the relieved at time | |
Connection refused - connect(2) | |
should change the state to closed_by_pruchase | |
Connection refused - connect(2) | |
should add a free_buyout transaction | |
when is an extension | |
Connection refused - connect(2) | |
should increase the extension days | |
Connection refused - connect(2) | |
should add a free_extension transaction | |
.shipped? | |
should return true when was shipped | |
should return false when was not shipped | |
OrderLog | |
validations | |
should require action to be set | |
should require user_id to be set | |
should require order_id to be set | |
associations | |
should belong to user | |
should belong to order | |
OrderNote | |
associations | |
should belong to order_item | |
should belong to user | |
validations | |
should require comment to be set | |
should require title to be set | |
should require isbn to be set | |
a generic issue | |
has barcode_info | |
saves a new order note | |
an item issue | |
barcode_info should be based on the item | |
#search | |
returns nothing when the query does not match with any record | |
with an empty query | |
returns all notes | |
with query = Order id | |
finds the note with that id | |
with query = Issue id | |
finds the note with that id | |
with query = Customer email | |
finds the notes for that user email | |
resolving issues | |
With an existing order | |
Do not charge the customer | |
Connection refused - connect(2) | |
should save the order note | |
Connection refused - connect(2) | |
should not attempt to charge the customer | |
Connection refused - connect(2) | |
should record the transaction in the order log | |
Connection refused - connect(2) | |
should save the order note | |
Connection refused - connect(2) | |
should not attempt to charge the customer | |
Connection refused - connect(2) | |
should record the transaction in the order log | |
Charge the customer | |
100% of the purchase price | |
Connection refused - connect(2) | |
should save the order note | |
Connection refused - connect(2) | |
should record the transaction in the order log | |
Connection refused - connect(2) | |
should calculate the amount to charge | |
Connection refused - connect(2) | |
should charge the customer | |
Connection refused - connect(2) | |
sets order item state to closed_rejected_by_depot for depot store | |
Connection refused - connect(2) | |
sets order item state to closed_rejected_by_rg for non-depot store | |
logging | |
Connection refused - connect(2) | |
should log the resolution amount | |
Connection refused - connect(2) | |
should log the resolution tax | |
50% of the purchase price | |
Connection refused - connect(2) | |
should save the order note | |
Connection refused - connect(2) | |
should record the transaction in the order log | |
Connection refused - connect(2) | |
should calculate the amount to charge | |
Connection refused - connect(2) | |
should charge the customer | |
Connection refused - connect(2) | |
sets order item state to closed_rejected_by_depot for depot store | |
Connection refused - connect(2) | |
sets order item state to closed_rejected_by_rg for non-depot store | |
logging | |
Connection refused - connect(2) | |
should log the resolution amount | |
Connection refused - connect(2) | |
should log the resolution tax | |
10% of the purchase price | |
Connection refused - connect(2) | |
should save the order note | |
Connection refused - connect(2) | |
should record the transaction in the order log | |
Connection refused - connect(2) | |
should calculate the amount to charge | |
Connection refused - connect(2) | |
should charge the customer | |
Connection refused - connect(2) | |
sets order item state to closed_rejected_by_depot for depot store | |
Connection refused - connect(2) | |
sets order item state to closed_rejected_by_rg for non-depot store | |
logging | |
Connection refused - connect(2) | |
should log the resolution amount | |
Connection refused - connect(2) | |
should log the resolution tax | |
Order | |
Associations | |
should belong to credit_card | |
should belong to user | |
should belong to store | |
should belong to commission_payment | |
should have one authorization | |
should have one shipping_address dependent => destroy | |
should have many items dependent => destroy | |
should have many order_logs dependent => destroy | |
should have many order_transactions dependent => destroy | |
should have many order_responses | |
accepts nested attributes for its shipping_address | |
accepts nested attributes for its credit_card | |
updates nested attributes for its credit_card | |
has a shipping method | |
validations | |
Connection refused - connect(2) | |
is invalid if the total open rentals for its user exceeds the limit | |
for shipping address | |
when fedex validation is false | |
Connection refused - connect(2) | |
use fedex validation and do not save a invalid addresses | |
Connection refused - connect(2) | |
do not use fedex validation for CA addresses | |
Connection refused - connect(2) | |
skip the fedex validation and save if it was already verified | |
when fedex validation is true | |
Connection refused - connect(2) | |
saves new shipping address | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
saves a shipping address from user | |
Connection refused - connect(2) | |
raise an error if the address is invalid | |
#date | |
formats the date | |
#update_items_start_date | |
when the order is not processed | |
Connection refused - connect(2) | |
sets the 'from' date of the items to today if it was older | |
when the order is processed | |
Connection refused - connect(2) | |
returns false and does nothing else | |
an Order | |
with items | |
Connection refused - connect(2) | |
sets the shipping_method_id on all items | |
Connection refused - connect(2) | |
has a subtotal that is just the item prices sum | |
Connection refused - connect(2) | |
stores the costs | |
Connection refused - connect(2) | |
returns the cart size | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
has tax (FAILED - 1) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
has a total that includes price, tax, and shipping | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
has a updated total when order is changed (FAILED - 2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
has a total that includes a discount | |
Connection refused - connect(2) | |
defaults currency to USD | |
#digital? | |
when all items are ebooks | |
Connection refused - connect(2) | |
should be digital | |
when some items are books and others are not | |
Connection refused - connect(2) | |
should not be digital | |
#canceled_total | |
without canceled items | |
Connection refused - connect(2) | |
canceled total should be $0.00 | |
with a canceled item | |
Connection refused - connect(2) | |
canceled total should be $10.00 | |
Connection refused - connect(2) | |
amount to charge should be iqual to the open total | |
has a shipping cost | |
Connection refused - connect(2) | |
of $0.00 if no shipping is assigned | |
Connection refused - connect(2) | |
of $0.00 for shipping id 1 | |
Connection refused - connect(2) | |
of $0.00 for shipping id 1 | |
Connection refused - connect(2) | |
in the right currency if a shipping method is assigned | |
with item to ship downgrade | |
Connection refused - connect(2) | |
do not charge the shipping for the downgraded item | |
Connection refused - connect(2) | |
calculate the correct total | |
on checkout | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
complete checkout (FAILED - 3) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
can update an order after review checkout (FAILED - 4) | |
confirm checkout | |
when authorized | |
and can charge | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
create authoriration and transactions (FAILED - 5) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
autorizes and charges for the correct amount (FAILED - 6) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
do NOT charge if authorization_without_charge is true (FAILED - 7) | |
and charge fail | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should stay authorized (FAILED - 8) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
keep the transactions as authorized (FAILED - 9) | |
when authorization fails | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
do NOT create authorization nor transactions | |
decrement stock properly | |
when user rent a book | |
Connection refused - connect(2) | |
decrement all rental options + buy used option if quantity > 0 | |
Connection refused - connect(2) | |
decrement all rental options + buy new option if buy used quantity <= 0 | |
when user buy a new book | |
Connection refused - connect(2) | |
decrement all rental options + buy new option | |
when user buy an used book | |
Connection refused - connect(2) | |
decrement all rental options + buy used option | |
and a canadian store | |
Connection refused - connect(2) | |
has currency | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
converts its prices | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
stores its currency | |
Connection refused - connect(2) | |
converts sums to canadian dollars | |
and a discount coupon | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
order should have a coupon id | |
Connection refused - connect(2) | |
keeps the saved discount even it the coupon changes | |
and a national discount coupon | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
creates a discount transaction labeled global (FAILED - 10) | |
and an affiliate discount coupon | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
creates a discount transaction labeled local (FAILED - 11) | |
.admin_search | |
Connection refused - connect(2) | |
find by isbn | |
Connection refused - connect(2) | |
find by date range | |
and fees and refunds | |
has a refund total of 200 for the order | |
has a fee total of 2140 for the order | |
has a misc fee total of 550 for the order | |
has a misc refund total of 53 for the order | |
has a net misc total of 497 for the order | |
has a limit of 4500 to charge of misc fees for the order | |
has an available amount of 4003 to charge of misc fees for the order | |
has a net total of 8740 for the order | |
a list of orders | |
.admin_search | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
find order by id | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
find order by user | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
find order by full name | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
find order by email | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
finds order by shipment_id | |
.chronological_log | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should show the last created log item first | |
no log items | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should return an empty array | |
.all_transactions | |
should return the order_responses | |
OrderTransaction | |
associations | |
should belong to order | |
should belong to creator | |
should belong to authorization | |
validations | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "auto_extension" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "free_extension" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "void" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "discount" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "extension" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "purchase" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "buyout" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "refund" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "auto_buyout" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "tax_charged" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "shipping_charged" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "rental" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "subscription" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "fee" | |
Connection refused - connect(2) | |
should allow transaction_type to be set to "free_buyout" | |
Connection refused - connect(2) | |
should not allow transaction_type to be set to "foo" | |
Connection refused - connect(2) | |
should not allow transaction_type to be set to "bar" | |
Connection refused - connect(2) | |
should not allow transaction_type to be set to "baz" | |
Connection refused - connect(2) | |
should require transaction_type to be set | |
Connection refused - connect(2) | |
should require amount_in_cents to be set | |
Connection refused - connect(2) | |
should require transaction_sub_type to be set | |
an order transaction | |
Connection refused - connect(2) | |
returns true if type is refund or discount | |
Connection refused - connect(2) | |
returns true if type is fee | |
Connection refused - connect(2) | |
returns true if type is refund | |
Connection refused - connect(2) | |
returns true if type is purchase | |
change states | |
Connection refused - connect(2) | |
start as authorized | |
Connection refused - connect(2) | |
sets the state to charged | |
#canceled? | |
with an canceled order item | |
Connection refused - connect(2) | |
should be canceled | |
with an open order item | |
Connection refused - connect(2) | |
should not be canceled | |
with an order | |
Connection refused - connect(2) | |
should not be canceled | |
Partial vs Full Refunds | |
when Manual Refund | |
for Minor damage | |
Connection refused - connect(2) | |
data[:refund] should equal :partial | |
Connection refused - connect(2) | |
order_type should be OrderItem | |
Connection refused - connect(2) | |
id should be the OrderItem's id | |
for Shipping charged | |
Connection refused - connect(2) | |
data[:refund] should equal :partial | |
Connection refused - connect(2) | |
order_type should be Order | |
Connection refused - connect(2) | |
id should be the Order's id | |
for Misc | |
Connection refused - connect(2) | |
data[:refund] should equal :partial | |
Connection refused - connect(2) | |
order_type should be Order | |
Connection refused - connect(2) | |
id should be the Order's id | |
when Manual Fee | |
for Minor damage | |
Connection refused - connect(2) | |
data should not contain string :partial | |
Connection refused - connect(2) | |
order_type should be OrderItem | |
Connection refused - connect(2) | |
id should be the OrderItem's id | |
for Shipping upgrade | |
Connection refused - connect(2) | |
data should not contain string :partial | |
Connection refused - connect(2) | |
order_type should be Order | |
Connection refused - connect(2) | |
id should be the Order's id | |
for Misc | |
Connection refused - connect(2) | |
data should not contain string :partial | |
Connection refused - connect(2) | |
order_type should be Order | |
Connection refused - connect(2) | |
id should be the Order's id | |
when Check-in | |
Connection refused - connect(2) | |
data[:refund] should contain string :full | |
Connection refused - connect(2) | |
order_type should be OrderItem | |
Connection refused - connect(2) | |
id should be the OrderItem's id | |
create a transaction | |
with OrderTransaction.auto_extension! | |
Connection refused - connect(2) | |
the state should be charged | |
with OrderTransaction.free_extension! | |
there is no test for 'free_extension' (PENDING: Temporarily disabled with xit) | |
with OrderTransaction.void! | |
Connection refused - connect(2) | |
the state should be authorized | |
with OrderTransaction.extension! | |
Connection refused - connect(2) | |
the state should be charged | |
with OrderTransaction.discount! | |
Connection refused - connect(2) | |
the state should be authorized | |
with OrderTransaction.buyout! | |
Connection refused - connect(2) | |
the state should be charged | |
with OrderTransaction.purchase! | |
Connection refused - connect(2) | |
the state should be authorized | |
with OrderTransaction.refund! | |
Connection refused - connect(2) | |
the state should be charged | |
with OrderTransaction.auto_buyout! | |
Connection refused - connect(2) | |
the state should be charged | |
with OrderTransaction.tax_authorized! | |
Connection refused - connect(2) | |
the state should be authorized | |
with OrderTransaction.fee! | |
Connection refused - connect(2) | |
the state should be charged | |
with OrderTransaction.subscription! | |
there is no test for 'subscription' (PENDING: Temporarily disabled with xit) | |
with OrderTransaction.rental! | |
Connection refused - connect(2) | |
the state should be authorized | |
with OrderTransaction.shipping_charged! | |
Connection refused - connect(2) | |
the state should be authorized | |
with OrderTransaction.tax_charged! | |
Connection refused - connect(2) | |
the state should be charged | |
with OrderTransaction.free_buyout! | |
there is no test for 'free_buyout' (PENDING: Temporarily disabled with xit) | |
ProductCode | |
validations | |
should require product_code to be set | |
should require taxware_code to be set | |
should require code_description to be set | |
Book | |
associations | |
should have one properties | |
should have many ebooks | |
class methods | |
finds the book by isbn10 | |
finds the book by isbn13 | |
validations | |
should require name to be set | |
should not allow isbn10 to be set to "9394830" | |
should not allow isbn13 to be set to "not an isbn13" | |
has at least one isbn | |
has a full purchase option set | |
a valid book | |
has a list price | |
aliases name to title | |
returns it's isbn13 if it has it | |
returns it's isbn10 if it has it | |
returns both isbns if it has them | |
turns into a hash | |
associations | |
has generic product properties | |
has specific properties of a book | |
has property fields | |
deletes the properties on destroy | |
has a purchase_option_set | |
destroys it's purchase_option_set on delete | |
Ebook::Properties | |
associations | |
should belong to book_properties | |
validations | |
should require ebook_code to be set | |
should require title_id to be set | |
with an older record | |
should require case sensitive unique value for ebook_code | |
should require case sensitive unique value for title_id | |
.find_subscription | |
returns a single rentable ebook when there is one | |
returns nothing when there is no rentable ebook | |
.find_purchase | |
returns a single purchase ebook when there is one | |
ProductSearch | |
validations | |
should ensure keyword has a length of at least 1 | |
search for products | |
searching for 'Ishmael' | |
should include "Ishmael (Trade Ed)" | |
should not include "Incredibly loud" | |
searching for 'loud' | |
should not include "Ishmael (Trade Ed)" | |
should include "Incredibly loud" | |
when searching with an ISBN | |
using isbn13 9780553375404 | |
should eql "Ishmael (Trade Ed)" | |
should not eql "Incredibly loud" | |
using isbn10 0553375407 | |
should eql "Incredibly loud" | |
should not eql "Ishmael (Trade Ed)" | |
when query includes whitespace | |
searching for ' Ishmael ' | |
should include "Ishmael (Trade Ed)" | |
should not include "Incredibly loud" | |
searching for ' loud ' | |
should not include "Ishmael (Trade Ed)" | |
should include "Incredibly loud" | |
using isbn13 9780553375404 including whitespace | |
should eql "Ishmael (Trade Ed)" | |
should not eql "Incredibly loud" | |
using isbn10 0553375407 including whitespace | |
should eql "Incredibly loud" | |
should not eql "Ishmael (Trade Ed)" | |
Product | |
validations | |
should require name to be set | |
a valid product | |
responds to an image method | |
instance methods | |
.order_items | |
should return order items through purchase options | |
PurchaseOption::Extension | |
final price should be 15 | |
validations | |
should not allow period to be set to 99 | |
should not allow period to be set to nil | |
should allow period to be set to 14 | |
PurchaseOption::OptionSet | |
returns true if the product is rentable and has all it's options | |
returns false if the product is rentable, but doesn't have all it's options | |
map works | |
finds the lowest rental | |
doesn't find the lowest if there is no stock | |
finds the lowest sale | |
turns to a hash | |
converts the prices when turning into a hash | |
only returns options with available stock | |
PurchaseOption::Rental | |
displays nicely as a string | |
final price should be 15 | |
associations | |
belongs to a product | |
validations | |
should not allow period to be set to "2342342" | |
should not allow period to be set to nil | |
should require price_in_cents to be set | |
PurchaseOption::Sale | |
displays nicely as a string | |
final price should be 100 | |
associations | |
belongs to a product | |
validations | |
should not allow condition to be set to "okay" | |
should not allow condition to be set to nil | |
should require price_in_cents to be set | |
PurchaseOption::Transfer | |
final price should be 100 | |
PurchaseOption | |
associations | |
should belong to book | |
should belong to product | |
a canadian option | |
has a stock of zero by default | |
has different stock based on canadian parameter | |
can decrement the stock | |
can't decrement the stock when it's zero | |
an option | |
has a stock of zero by default | |
can decrement the stock | |
turns into a hash | |
returns its price per day | |
School::Importer | |
imports the properties | |
imports the address | |
School | |
validations | |
should require full_name to be set | |
association | |
should belong to address | |
should have one store | |
SearchLog | |
log of empty searches | |
search of existing book | |
shouldn't create a new entry in Search log | |
search of existing isbn | |
shouldn't create a new entry in Search log | |
search of non-existing book | |
should create a new entry in Search log | |
search of non-existing isbn | |
should create a new entry in Search log | |
search of out of stock item | |
should create a new entry in Search log | |
SectionBook | |
associations | |
should belong to adoption | |
should belong to book | |
validations | |
should require adoption to be set | |
should require book to be set | |
Section | |
associations | |
should belong to course | |
should have many adoptions | |
validations | |
should require name to be set | |
should require case sensitive unique value for name scoped to course_id | |
Shipment | |
should return a Shipment class | |
returns a tracking number | |
generates a pdf file and puts it into the shipping labels directory | |
populates errors from fedex if necessary | |
associates the rental with a shipping customer after creating the shipping customer (PENDING: there is an inconsistency here because item.shipment_id and subject.shipment_id have diferent types) | |
creates a recipient with no decoration on the address | |
initializes the barcode instance variable on further calls to new | |
affiliate return | |
creates a recipient with ADR appended to the address | |
ShippingBox | |
associations | |
should have many order_items | |
should belong to store | |
ShippingMethod | |
returns nil if no method is found | |
returns the standard shipping method (PENDING: Not yet implemented) | |
find by id | |
for us addresses | |
doesnt find without a valid address | |
doesnt find with a wrong id | |
has cost $0.00 when quantity is 0 | |
with 'Standard' shipping for CA/US and 2 items | |
region should be '48 States' | |
quantity should be '2' | |
id should be '1' | |
cost should be $0.00 | |
name should be 'Standard' | |
with 'Expedited' shipping for HI/US | |
and with 2 items | |
region should be 'AK / HI' | |
quantity should be '2' | |
id should be '2' | |
cost should be $14.00 | |
name should be 'Expedited' | |
and with 1 items | |
quantity should be '1' | |
cost should be $10.00 | |
and with 0 items | |
quantity should be '0' | |
cost should be $0.00 | |
for Canada | |
finds by id if providing CA or Canada | |
finds all | |
for Canada | |
for a US address | |
a shipping method | |
knows it's region if in Canada | |
knows it's region if in US | |
knows it's region if AK | |
has a shipping cost per region | |
has a description | |
has a speed based on the region when Canadian | |
shipping cost | |
with an US address from AK | |
takes quantity into consideration to caulculate the cost | |
with an US address from one of the 48 states | |
takes quantity into consideration to caulculate the cost | |
with a Canada address | |
takes quantity into consideration to caulculate the cost | |
standard to AK | |
has a speed based on the region when AK | |
gives a deliver estimate based on today | |
gives a deliver estimate based on passed in date | |
validations | |
doesn't have errors if you can use this method for the region | |
has errors if you try to ship to the po box | |
StoreLocation | |
associations | |
should belong to store | |
should have one address | |
validations | |
should require store to be set | |
should require address to be set | |
associate invalid address | |
should be false | |
Store | |
has a custom logo | |
returns true if canadian | |
returns its home_url | |
returns wether to hide or show list price | |
should return true if store has gray_background | |
associations | |
should belong to school | |
should have one address | |
should have many locations | |
should have one tax_information | |
should have one affiliate_user | |
should have one contract_owner dependent => destroy | |
should have one contract_accounting_contact dependent => destroy | |
should have one territory_manager dependent => destroy | |
should have one business_rule dependent => destroy | |
should have many orders | |
should have many order_items through orders | |
should have many coupon_owners dependent => destroy | |
should have many coupons through coupon_owners | |
should have many adoptions dependent => destroy | |
should have many shipping_boxes | |
should have many terms | |
should have many departments through terms | |
should have many blacklists | |
should have many commission_payments | |
validations | |
should require name to be set | |
should require follett_customer_number to be set | |
should require url to be set | |
should require follett_customer_number to be set | |
should require territory_designation to be set | |
should require fax to be set | |
should require commissions to be set | |
length | |
should allow commissions to be set to 10 | |
should allow tag_line to be set to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | |
should allow store_hours to be set to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | |
should allow custom_text to be set to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | |
should allow primary_color to be set to "aaa" | |
should allow primary_color to be set to "aaa123" | |
should allow secondary_color to be set to "aaa" | |
should allow secondary_color to be set to "aaa123" | |
should not allow commissions to be set to 100 | |
should not allow tag_line to be set to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | |
should not allow store_hours to be set to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | |
should not allow custom_text to be set to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | |
should not allow primary_color to be set to "a" | |
should not allow secondary_color to be set to "a" | |
uniqueness | |
should not allow url to be set to "valid212" | |
format | |
should allow url to be set to "valid.domain.com" | |
should allow primary_color to be set to "aaa123" | |
should not allow url to be set to "|Nv$l|d_domain.com" | |
should not allow primary_color to be set to "gggggg" | |
#buy_rent? | |
should return true if the rental_type is "buy_rent" | |
should return false if the rental_type is not "buy_rent" | |
#buy_only? | |
should return true if the rental_type is "buy_only" | |
should return false if the rental_type is not "buy_only" | |
#rent_only? | |
should return true if the rental_type is "rent_only" | |
should return false if the rental_type is not "rent_only" | |
#rent? | |
should return true if the rental_type is rent_only | |
should return true if the rental_type is buy_rent | |
should return false if the rental_type is buy_only | |
#buy? | |
should return true if the rental_type is buy_only | |
should return true if the rental_type is buy_rent | |
should return false if the rental_type is rent_only | |
#ebooks? | |
returns true if ebooks are enabled on the store and settings | |
returns false if ebooks are enabled only on the settings | |
returns false even if ebooks are enabled only on the store | |
StoreTerm | |
associations | |
should belong to store | |
should have many adoptions | |
should have many departments dependent => destroy | |
validations | |
should require name to be set | |
should require case sensitive unique value for name scoped to store_id | |
Adoption::AdoptedBook | |
validations | |
should require book to be set | |
should require adoption to be set | |
should require case sensitive unique value for book_id scoped to adoption_id | |
associations | |
should belong to adoption | |
should belong to book | |
CourseworkImporter | |
New adoption (replace) | |
populates the missed departments | |
populates the missed courses | |
populates the missed sections | |
populate the adoption including the given books | |
doesn't populate repeated adoptions | |
attach isbns to same adoption when store, term and section are equals | |
returns missing isbns | |
Existing adoptions (merge) | |
updates the adoption | |
appends the books when no delete flag is set | |
RatexImporter | |
New adoption (replace) | |
populates the missed departments | |
populates the missed courses | |
populates the missed sections | |
populate the adoption including the given books | |
doesn't populate repeated adoptions | |
attach isbns to same adoption when store, term and section are equals | |
returns missing isbns | |
Existing adoptions (merge) | |
updates the adoption | |
appends the books when no delete flag is set | |
Adoption::Importer | |
New adoption (replace) | |
populates the store's adoption (PENDING: Temporarily disabled with xit) | |
imports books by isbn (PENDING: Temporarily disabled with xit) | |
returns missing isbns (PENDING: Temporarily disabled with xit) | |
Existing adoptions (merge) | |
updates the adoption (PENDING: Temporarily disabled with xit) | |
appends the books when no delete flag is set (PENDING: Temporarily disabled with xit) | |
Adoption | |
associations | |
should belong to store | |
should belong to term | |
should belong to section | |
should have many section_books | |
should have many books through section_books | |
validations | |
should require term_id to be set | |
should require section_id to be set | |
should require course to be set | |
should require department to be set | |
a course and department | |
TaxInformation | |
associations | |
should belong to store | |
validations | |
should require federal_tax_id to be set | |
should require business_name to be set | |
User | |
validations | |
should require first_name to be set | |
should require last_name to be set | |
should ensure first_name has a length of at most 30 | |
should ensure last_name has a length of at most 30 | |
requires acceptance of TOS | |
requires a date for the grad year | |
requires a small school name | |
email validation | |
is invalid without a uniq email | |
requires a email | |
should accept valid email addresses | |
should reject invalid email addresses | |
password validations | |
requires a password | |
requires a matching password | |
requires a password to be 6 characters long | |
Associations | |
should have many addresses dependent => destroy | |
should have many orders | |
should have many credit_cards | |
should have many order_logs | |
should have many order_notes | |
have shipping addresses | |
with rentals | |
Connection refused - connect(2) | |
has rental_items | |
Connection refused - connect(2) | |
has rentals | |
Connection refused - connect(2) | |
has a total open rental amount | |
instance methods | |
.full_name | |
return first_name and last name | |
mailing_list | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should include opt-in users who have ordered from the current store | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should not include opt-in users who have not ordered from the current store | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should not include opt-out users | |
Admin::Blacklist | |
blacklist index page | |
show current blacklisted items | |
search for blacklisted items successfully | |
search for blacklisted items unsuccessfully | |
add blacklist page | |
creates a blacklist item | |
fails to create without a valid book | |
fails to create without a reason | |
Admin::Coupons | |
save | |
discount type should always be in % | |
creates a coupon | |
updates a cupon | |
Admin::Customers | |
customers search customers page | |
by first name | |
by last name | |
by full name | |
by email | |
redirect to edit page if search result match one single result | |
show error message when no result found | |
Admin::Issues | |
Connection refused - connect(2) | |
issues link on orders menu | |
list order notes | |
Connection refused - connect(2) | |
show open issues by default | |
Connection refused - connect(2) | |
show not show closed issues by default | |
Connection refused - connect(2) | |
should have a menu for displaying open, closed & all issues | |
Connection refused - connect(2) | |
search for a issue | |
Connection refused - connect(2) | |
should show errors on resolving an issue | |
Connection refused - connect(2) | |
should resolve an issue when required fields are input | |
an issue | |
Connection refused - connect(2) | |
create a generic issue | |
Connection refused - connect(2) | |
show errors for invalid issue | |
Admin::Orders | |
list orders | |
Connection refused - connect(2) | |
empty list if there is no items | |
with items | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
list the items from an order | |
show an order | |
with discount | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
/Users/eden/Code/ruby/rails/rentwb/app/views/admin/orders/_customer_info.html.haml:31: warning: Object#type is deprecated; use Object#class | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
/Users/eden/Code/ruby/rails/rentwb/app/views/admin/orders/_customer_info.html.haml:31: warning: Object#type is deprecated; use Object#class | |
Connection refused - connect(2) | |
the price of a processed order should not change | |
Admin::Recievings | |
list check-in orders | |
with items | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
empty list if there is no query | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
hide all received items from all orders by default | |
check-in a book | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
click on 'pass' to check a book as returned | |
with checked in receivings | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should have a RETURNED_RECEIVED_BY_RG book | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
should not see the print receipt link (as admin) | |
an issue | |
create a generic issue | |
Connection refused - connect(2) | |
create a item issue | |
Admin::Reports::Revenues | |
form | |
contain inputs to request report data | |
report results | |
display total summary | |
Admin::Stores | |
save | |
has commissions field | |
has enable_ebooks field | |
store#edit | |
should display the correct password error message | |
should have a gray background checkbox | |
Admin::Orders::Rentals | |
list rentals | |
Connection refused - connect(2) | |
show items | |
extend rental | |
Connection refused - connect(2) | |
show price with multiplier and button to extend | |
Connection refused - connect(2) | |
/Users/eden/Code/ruby/rails/rentwb/app/views/admin/orders/_customer_info.html.haml:31: warning: Object#type is deprecated; use Object#class | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
extend the item | |
convert to purchase a rental | |
Connection refused - connect(2) | |
show sale price with multiplier and button to purchase | |
Connection refused - connect(2) | |
/Users/eden/Code/ruby/rails/rentwb/app/views/admin/orders/_customer_info.html.haml:31: warning: Object#type is deprecated; use Object#class | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
purchase the item | |
Affiliates::Adoptions | |
main page | |
adoptions link on settings menu | |
there's current import process happenning | |
should show a notification of current percentage | |
there's pending import process to start | |
should show a notification of current percentage | |
adoption's new page | |
add adoptions link on main page | |
import form | |
contain inputs to import adoptions data | |
add new adoption form | |
contain inputs to add/update a single adoption | |
adding a new adoption | |
let the user to add a new term | |
Books | |
Given I am a logged in user | |
When I choose a book with rental option | |
I can rent the Book | |
When I choose a book with all purchase options | |
I can see the digital sale/rental options if ebooks are enabled on the server settings | |
I CANNOT see the digital sale/rental options if ebooks are disabled on the server settings | |
Carts | |
Given I am a logged in user | |
When I add a book to my cart | |
address_to option was missing. | |
address_to option was missing. | |
I can update the rental period and save the changes | |
address_to option was missing. | |
address_to option was missing. | |
I can update the quantity and save the changes | |
address_to option was missing. | |
I cannot update the quantity with a non numeric value | |
When I have nothing in my cart | |
And I visit the cart page | |
I can see that my cart is empty | |
Checkouts | |
Given I am a logged in user | |
And I choose to buy a digital book | |
When I am at the 'Terms' page | |
address_to option was missing. | |
I can see the 'digital terms' | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
I am redirected to the 'Billing' page if I accept the terms | |
address_to option was missing. | |
I am redirected back to the 'Terms' page If I try to access the 'Shipping Address' | |
When I am at the 'Billing' page | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
I am redirected back to the 'Terms' page If I try to access the 'Shipping Address' | |
When I am at the 'Review' page | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
I can see the 'Payment Info' but no 'Shipping Info' (FAILED - 12) | |
And I place the order | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
I can see the Download URL and the Activation PIN (FAILED - 13) | |
And I choose to rent a book | |
When I am at the 'Terms' page | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
I am redirected to the 'Shipping' page If I accept the terms | |
address_to option was missing. | |
I am notified to 'accept the terms before continuing' If I refuse the terms | |
address_to option was missing. | |
The error message is cleaned If I visit an other page after getting an error | |
When I am at the 'Shipping Address' page | |
And I want to add a new address | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I can create a new address If it is valid and verified by Fedex | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
I get errors If my shipping address is invalid | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
I get the fedex errors for shipping address modified by fedex | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
I get the fedex errors for an unrecognized shipping address | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I can create the address and skip the fedex validation If it was already verified | |
And I want to use an existent address | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I can select an address and continue with the checkout | |
address_to option was missing. | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
My saved address is selected by default If I return to the 'Shipping Address' page | |
And autodowngrade is enebled in the server settings | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
I get a validation error If I select 'Expedited Shipping' and no auto-downgrade choice was made | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I can save the address with 'Expedited Shipping' If the auto-downgrade choice was made | |
When I am at the 'Billing' page | |
And I want to add a new credit card | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I can create a new credit card If it is valid (FAILED - 14) | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I CANNOT create a credit card with an invalid number | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I CANNOT create a credit card with no number | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I get an error if the credit card is refused by the payment gateway | |
And I want to use an existent credit card | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I can select an existent credit card and continue with the checkout (FAILED - 15) | |
When I am at the 'Review' page | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I can pay with a valid credit card (FAILED - 16) | |
address_to option was missing. | |
address_to option was missing. | |
address_to option was missing. | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I get an error If the authorization fails (FAILED - 17) | |
CreditCards | |
logged in | |
#new | |
should have editable credit card fields | |
#edit | |
should not have editable credit card fields | |
Orders | |
Given I am a logged user | |
When I have a pending order | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I can cancel one of my pending order items | |
When I have an order with all kind of items | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I can see the correct purchase options for each item | |
When I have a digital order | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
I can see the download URL of my ebook but not the 'Return' buttons | |
Portal | |
searching for existing school | |
should redirect to the school's page | |
searching for school that does not have an affiliate store | |
should redirect to the national site | |
searchng for non-existent school | |
should redirect to the national site home page | |
Products | |
has a product image div | |
Rentals | |
list rentals | |
with a refundable rental | |
Connection refused - connect(2) | |
show 'Return for Refund' link on items | |
without a refundable rental | |
Connection refused - connect(2) | |
show checkbox on items | |
extend rental | |
Connection refused - connect(2) | |
show price with multiplier | |
Connection refused - connect(2) | |
Connection refused - connect(2) | |
extend the rental period (FAILED - 18) | |
Returning a book | |
logged in user | |
listing rentals | |
Connection refused - connect(2) | |
should show selectable rentals to return | |
selecting rentals to return | |
Connection refused - connect(2) | |
should enable print buttons when a check box is selected | |
returning selected rentals | |
via Shipment | |
Connection refused - connect(2) | |
should show print buttons | |
via Store | |
Connection refused - connect(2) | |
should show print buttons | |
Searches | |
Given I am a guest user | |
And I search for a book | |
When the book have 'rental' and 'sale' options | |
I can see the buttons and prices to 'Buy' and 'Rent' | |
When the book only have the 'digital' option | |
I can see only see the button and price for the 'digital' option | |
SignUp | |
When filling out the sign up form | |
should have #user_mailing_list checked | |
should have #user_mobile_promotions checked and disabled | |
/Users/eden/Code/ruby/rails/rentwb/config/initializers/states.rb:52: warning: already initialized constant USA_STATES | |
/Users/eden/Code/ruby/rails/rentwb/config/initializers/states.rb:69: warning: already initialized constant CANADA_PROVINCES | |
should enable #user_mobile_promotions when filling in Mobile number | |
should have #user_school_name be populated with the school name searched for from portal | |
should have #user_school_name use school auto complete | |
UserAuths | |
Facebook Auth | |
auth from Facebook for existing user | |
FacebookService | |
find_user_for_oauth | |
when a user is found | |
when a user has not facebook id | |
should be assigned a facebook id | |
when a user has facebook id | |
should return the user is the facebook id matches | |
should return a new user id when the facebook id not matches | |
when a user is not found | |
should return a new user | |
should assign a facebook_id | |
Pending: | |
Epay#void refunds a book | |
# Not yet implemented | |
# ./spec/lib/epay_spec.rb:41 | |
Epay#recover_pin retrieves a lost pin number | |
# Not yet implemented | |
# ./spec/lib/epay_spec.rb:45 | |
Payment::Plugnpay#storing_card authorize for $1,00 and revert the authorization | |
# Temporarily disabled with xit | |
# ./spec/lib/payment/plugnpay_spec.rb:16 | |
BlacklistedUser add some examples to (or delete) /Users/eden/Code/ruby/rails/rentwb/spec/models/blacklisted_user_spec.rb | |
# No reason given | |
# ./spec/models/blacklisted_user_spec.rb:4 | |
OrderItem a product, option and item finds outstanding rentals | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:276 | |
OrderItem a product, option and item stores the actual price of the purchase option | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:324 | |
OrderItem a product, option and item stores the actual price of the purchase option when canadian | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:333 | |
OrderItem a product, option and item sets the order type when option is a sale | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:400 | |
OrderItem a product, option and item sets the order type when option is an extension | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:406 | |
OrderItem a product, option and item pricing calculates price based on quantity | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:425 | |
OrderItem a product, option and item pricing returns the total | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:429 | |
OrderItem a product, option and item pricing with canadian converts list_price to CAD | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:439 | |
OrderItem a product, option and item pricing with canadian converts price to CAD | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:443 | |
OrderItem Process Fedex shipments should process only non-deliverd tracking numbers (e.g., pending or shipped_with_customer) | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:623 | |
OrderItem Process Fedex shipments should change pending order item to shipped | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:627 | |
OrderItem Process Fedex shipments should mark delivered_at | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:634 | |
OrderItem Process Fedex shipments should mark shipped_at | |
# Temporarily disabled with xit | |
# ./spec/models/order_item_spec.rb:638 | |
OrderTransaction create a transaction with OrderTransaction.free_extension! there is no test for 'free_extension' | |
# Temporarily disabled with xit | |
# ./spec/models/order_transaction_spec.rb:309 | |
OrderTransaction create a transaction with OrderTransaction.subscription! there is no test for 'subscription' | |
# Temporarily disabled with xit | |
# ./spec/models/order_transaction_spec.rb:309 | |
OrderTransaction create a transaction with OrderTransaction.free_buyout! there is no test for 'free_buyout' | |
# Temporarily disabled with xit | |
# ./spec/models/order_transaction_spec.rb:309 | |
Shipment associates the rental with a shipping customer after creating the shipping customer | |
# there is an inconsistency here because item.shipment_id and subject.shipment_id have diferent types | |
# ./spec/models/shipment_spec.rb:36 | |
ShippingMethod returns the standard shipping method | |
# Not yet implemented | |
# ./spec/models/shipping_method_spec.rb:128 | |
Adoption::Importer New adoption (replace) populates the store's adoption | |
# Temporarily disabled with xit | |
# ./spec/models/stores/adoption/importer_spec.rb:22 | |
Adoption::Importer New adoption (replace) imports books by isbn | |
# Temporarily disabled with xit | |
# ./spec/models/stores/adoption/importer_spec.rb:26 | |
Adoption::Importer New adoption (replace) returns missing isbns | |
# Temporarily disabled with xit | |
# ./spec/models/stores/adoption/importer_spec.rb:31 | |
Adoption::Importer Existing adoptions (merge) updates the adoption | |
# Temporarily disabled with xit | |
# ./spec/models/stores/adoption/importer_spec.rb:45 | |
Adoption::Importer Existing adoptions (merge) appends the books when no delete flag is set | |
# Temporarily disabled with xit | |
# ./spec/models/stores/adoption/importer_spec.rb:49 | |
Failures: | |
1) Order an Order with items has tax | |
Failure/Error: subject.tax.to_s.should == "$1.70" | |
expected: "$1.70" | |
got: "$200.00" (using ==) | |
# ./spec/models/order_spec.rb:271 | |
2) Order an Order with items has a updated total when order is changed | |
Failure/Error: subject.total.to_s.should == "$33.70" | |
expected: "$33.70" | |
got: "$232.00" (using ==) | |
# ./spec/models/order_spec.rb:279 | |
3) Order an Order with items on checkout complete checkout | |
Failure/Error: subject.bill! | |
TypeError: | |
can't convert String into Integer | |
# ./app/models/order.rb:710:in `[]' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:638:in `money' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:709:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./app/models/order.rb:432:in `tap' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./spec/models/order_spec.rb:309 | |
4) Order an Order with items on checkout can update an order after review checkout | |
Failure/Error: subject.bill! | |
TypeError: | |
can't convert String into Integer | |
# ./app/models/order.rb:710:in `[]' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:638:in `money' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:709:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./app/models/order.rb:432:in `tap' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./spec/models/order_spec.rb:324 | |
5) Order an Order with items on checkout confirm checkout when authorized and can charge create authoriration and transactions | |
Failure/Error: subject.confirm_checkout | |
TypeError: | |
can't convert String into Integer | |
# ./app/models/order.rb:710:in `[]' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:638:in `money' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:709:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./app/models/order.rb:432:in `tap' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./app/models/order.rb:735:in `prepare_to_confirm' | |
# ./app/models/order.rb:305:in `confirm_checkout' | |
# ./app/models/authorization.rb:61:in `authorize!' | |
# ./app/models/order.rb:284:in `confirm_checkout' | |
# ./spec/models/order_spec.rb:343 | |
6) Order an Order with items on checkout confirm checkout when authorized and can charge autorizes and charges for the correct amount | |
Failure/Error: subject.confirm_checkout | |
TypeError: | |
can't convert String into Integer | |
# ./app/models/order.rb:710:in `[]' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:638:in `money' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:709:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./app/models/order.rb:432:in `tap' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./app/models/order.rb:735:in `prepare_to_confirm' | |
# ./app/models/order.rb:305:in `confirm_checkout' | |
# ./app/models/authorization.rb:61:in `authorize!' | |
# ./app/models/order.rb:284:in `confirm_checkout' | |
# ./spec/models/order_spec.rb:350 | |
7) Order an Order with items on checkout confirm checkout when authorized and can charge do NOT charge if authorization_without_charge is true | |
Failure/Error: subject.confirm_checkout | |
TypeError: | |
can't convert String into Integer | |
# ./app/models/order.rb:710:in `[]' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:638:in `money' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:709:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./app/models/order.rb:432:in `tap' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./app/models/order.rb:735:in `prepare_to_confirm' | |
# ./app/models/order.rb:305:in `confirm_checkout' | |
# ./app/models/authorization.rb:61:in `authorize!' | |
# ./app/models/order.rb:284:in `confirm_checkout' | |
# ./spec/models/order_spec.rb:357 | |
8) Order an Order with items on checkout confirm checkout when authorized and charge fail should stay authorized | |
Failure/Error: expect {subject.confirm_checkout}.to raise_error AuthorizationChargeError | |
expected AuthorizationChargeError, got #<TypeError: can't convert String into Integer> | |
# ./spec/models/order_spec.rb:366 | |
9) Order an Order with items on checkout confirm checkout when authorized and charge fail keep the transactions as authorized | |
Failure/Error: expect {subject.confirm_checkout}.to raise_error AuthorizationChargeError | |
expected AuthorizationChargeError, got #<TypeError: can't convert String into Integer> | |
# ./spec/models/order_spec.rb:366 | |
10) Order an Order with items and a national discount coupon creates a discount transaction labeled global | |
Failure/Error: subject.bill! | |
TypeError: | |
can't convert String into Integer | |
# ./app/models/order.rb:710:in `[]' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:638:in `money' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:709:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./app/models/order.rb:432:in `tap' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./spec/models/order_spec.rb:546 | |
11) Order an Order with items and an affiliate discount coupon creates a discount transaction labeled local | |
Failure/Error: subject.bill! | |
TypeError: | |
can't convert String into Integer | |
# ./app/models/order.rb:710:in `[]' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:638:in `money' | |
# ./app/models/order.rb:710:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:709:in `update_tax_for_order_and_items' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./app/models/order.rb:432:in `tap' | |
# ./app/models/order.rb:432:in `calculate_tax_and_save' | |
# ./spec/models/order_spec.rb:559 | |
12) Checkouts Given I am a logged in user And I choose to buy a digital book When I am at the 'Review' page I can see the 'Payment Info' but no 'Shipping Info' | |
Failure/Error: page.should have_content "Digital Purchase" | |
expected there to be content "Digital Purchase" in "\nsomebody300\n\n/* vars ******************************************* */\n/* end vars *************************************** */\n/* mixins ******************************************* */\n/* end mixins *************************************** */\n/* Search *************************************** */\n#search-box input[type=\"text\"] {\n box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.4);\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3);\n color: white; }\n\n/* block elements ************************************* */\nh2.title {\n color: #2a2a2a;\n text-shadow: 0 1px 0 white; }\n\nheader .store-name {\n color: #d0d0d0; }\nheader #header-nav-bottom {\n border-top: 2px solid #909090 !important; }\n\n.big {\n color: #aaaaaa; }\n\nlabel {\n color: #aaaaaa !important; }\n\nfooter {\n background-color: #aaaaaa;\n border-top: 1px solid #777777; }\n footer a {\n color: white !important; }\n\n/* links ********************************************* */\na {\n color: #d0d0d0; }\n\na.large {\n color: #d0d0d0; }\n\n#return-books a {\n color: #333333; }\n\n/* Shared ****************************************** */\n#ui-datepicker-div {\n border: 3px solid #c3c3c3; }\n #ui-datepicker-div .ui-widget-header {\n background-color: #c3c3c3; }\n\n#main, #main.home, article#static_pages {\n border-top: 1px solid #777777;\n background: #aaaaaa url(\"/assets/arches-affiliate.png\") no-repeat center 30px; }\n\n#main.affiliate, #main.home.affiliate {\n border-top: 1px solid #444444;\n background: #aaaaaa url(\"/assets/arches-affiliate.png\") no-repeat top center; }\n\ninput[type=\"text\"], input[type=\"password\"], input[type=\"email\"], select {\n border: 1px solid #dddddd;\n box-shadow: inset 1px 1px 3px #eaeaea; }\n\n#site-list, .site-list, .checkout, .checkout-review, .order_confirmation {\n border: 1px solid #aaaaaa !important; }\n\n.icon {\n color: #aaaaaa; }\n\n.adoption-search .icon, .adoption-search .column-a, .adoption-search .column-b {\n color: white; }\n\n.adoption-search .column-a {\n border-bottom: 1px solid white; }\n\n.faq dt:before {\n color: #aaaaaa;\n background-color: #aaaaaa; }\n\n.faq dd:before {\n color: #aaaaaa;\n background-color: #aaaaaa; }\n\nbody.accounts form h3 {\n background-color: #aaaaaa;\n color: #aaaaaa; }\n\nbody.accounts section h3, body.accounts section .site-list-header, body.orders section h3, body.orders section .site-list-header, body.carts section h3, body.carts section .site-list-header, body.product_searches section h3, body.product_searches section .site-list-header, body.adoption_searches section h3, body.adoption_searches section .site-list-header {\n border-bottom: 1px solid #aaaaaa !important;\n background-color: #aaaaaa !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important;\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important; }\nbody.accounts submit-button, body.orders submit-button, body.carts submit-button, body.product_searches submit-button, body.adoption_searches submit-button {\n margin-top: 0; }\n\nbody.registrations .site-list-header, body.registrations .checkout-items.review th, body.registrations .confirm-header, body.registrations h1, body.registrations .checkout_terms_items th, body.shippings .site-list-header, body.shippings .checkout-items.review th, body.shippings .confirm-header, body.shippings h1, body.shippings .checkout_terms_items th, body.billings .site-list-header, body.billings .checkout-items.review th, body.billings .confirm-header, body.billings h1, body.billings .checkout_terms_items th, body.reviews .site-list-header, body.reviews .checkout-items.review th, body.reviews .confirm-header, body.reviews h1, body.reviews .checkout_terms_items th, .legal .site-list-header, .legal .checkout-items.review th, .legal .confirm-header, .legal h1, .legal .checkout_terms_items th {\n border-bottom: 1px solid #aaaaaa !important;\n background-color: #aaaaaa !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important;\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important; }\nbody.registrations h3, body.registrations .checkout-items.receipt th, body.shippings h3, body.shippings .checkout-items.receipt th, body.billings h3, body.billings .checkout-items.receipt th, body.reviews h3, body.reviews .checkout-items.receipt th, .legal h3, .legal .checkout-items.receipt th {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\n\n.dialog form h3.section-header {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\n\n#account-information {\n border: 1px solid #aaaaaa !important; }\n\n.my-account-right-header, .my-account-header {\n border-bottom: 1px solid #aaaaaa !important;\n background-color: #aaaaaa !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important;\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important; }\n\n.account-information-section h4 {\n color: #aaaaaa !important; }\n\n#order-history {\n border: 1px solid #aaaaaa !important; }\n\n.order-single h4 {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\n .order-single h4 a {\n color: #9d9d9d !important; }\n.order-single li {\n color: #aaaaaa !important;\n border-bottom: 1px solid #f6f6f6 !important; }\n\n.ui-dialog.ui-widget.ui-widget-content {\n border: 1px solid #aaaaaa !important; }\n\n.ui-dialog-titlebar {\n border-bottom: 1px solid #aaaaaa !important;\n color: #5d5d5d !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background: #c3c3c3 !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important; }\n\n.dialog li.button {\n border: 1px solid #eaeaea !important; }\n\n.order-item {\n border-bottom: 1px solid #eaeaea !important; }\n\n/* My Rentals ************************************* */\n.rentals .rental_options input[type=\"submit\"], .rentals .rental_options input[type=\"submit\"]:hover {\n border: 1px solid #a3a3a3 !important;\n color: #6f6f6f !important;\n text-shadow: 0 1px 0 white;\n background-color: #efefef;\n background-image: none;\n box-shadow: inset 0px 1px 0px white !important; }\n.rentals .rental_options input[type=\"submit\"]:hover {\n background-color: #d5d5d5 !important; }\n.rentals .rental-item {\n border-bottom: 1px solid #f6f6f6; }\n.rentals .rental-due li:first-child {\n color: #aaaaaa; }\n.rentals .rental-due li:first-child span {\n color: #2a2a2a; }\n.rentals .rental-due li:nth-child(2) {\n color: #2a2a2a; }\n.rentals .rental-due li:first-child span.overdue {\n color: #990000; }\n.rentals a.mark, .rentals a.mark:hover {\n background: #efefef url(\"/assets/mark_icon.png\") no-repeat 10px 6px !important; }\n.rentals a.mark:hover {\n background-color: #efefef !important; }\n.rentals a.marked, .rentals a.marked:hover {\n color: #5b5474 !important;\n background: #dddddd url(\"/assets/marked_icon.png\") no-repeat 10px 7px !important;\n text-shadow: 0 1px 0 #f6f6f6 !important;\n border: 1px solid #736992 !important;\n box-shadow: inset 0 1px 0 #f6f6f6 !important; }\n.rentals a.marked:hover {\n background-color: #b8b3c8 !important; }\n\n/* Order details ********************************** */\n.orders #order-shipping {\n border: 1px solid #aaaaaa;\n background-color: white !important; }\n.orders #order-summary {\n border: 1px solid #aaaaaa;\n background-color: white !important; }\n.orders .order-details-right-header, .orders .order-details-header {\n border-bottom: 1px solid #aaaaaa;\n color: #5d5d5d;\n text-shadow: 0 1px 0 #dddddd;\n background: #c3c3c3 url(\"/assets/search_form_bg.png\") repeat-x bottom left;\n box-shadow: inset 0 1px 0 #c3c3c3; }\n.orders .order-item {\n border-bottom: 1px solid #f6f6f6; }\n.orders #status li:nth-child(2) {\n color: #444444; }\n.orders #item-terms li:first-child {\n color: #aaaaaa; }\n.orders #item-terms li:nth-child(2) {\n color: #2a2a2a; }\n.orders #total li span {\n background-color: white; }\n.orders #total li span:last-child {\n background-color: white;\n color: #aaaaaa; }\n.orders #total span:last-child.price {\n color: #444444; }\n.orders #transaction-list {\n background-color: white !important;\n border-color: #aaaaaa !important; }\n.orders #transaction-list tr:first-child {\n background-color: white; }\n.orders #transaction-list tr:first-child th {\n color: #aaaaaa;\n border-bottom: 1px solid #dddddd;\n box-shadow: inset 0 -1px 0 white; }\n.orders .even {\n background-color: white !important; }\n.orders .odd {\n background-color: white !important; }\n .orders .odd td {\n border-top: 1px solid #f6f6f6;\n border-bottom: 1px solid #f6f6f6; }\n\n/* Product details ********************************* */\n.books .product-display li span {\n color: #aaaaaa !important;\n text-shadow: 0 1px 0 white; }\n.books .product-display #description h4 {\n color: #aaaaaa !important; }\n.books .product-pricing {\n border: 1px solid #aaaaaa !important;\n background-color: white; }\n .books .product-pricing .cart_item {\n background-color: white; }\n.books .product-pricing-right-header {\n border-bottom: 1px solid #aaaaaa !important;\n background-color: #aaaaaa !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important;\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important; }\n.books #item-submit {\n background-color: #efefef;\n background-image: none; }\n.books .rental_period label {\n color: #aaaaaa !important; }\n .books .rental_period label .picker input {\n border: 1px solid #cccccc;\n color: #777777 !important; }\n.books span.select, .books .rental_period span.to {\n color: #777777 !important; }\n.books p.list-price {\n color: #aaaaaa !important; }\n\n/* Checkout *********************************** */\nbody.carts .cart-checkout {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\nbody.carts span.to {\n color: #aaaaaa !important; }\nbody.carts .cart-item .cart-item-options .cart-details .purchase_option, body.carts .cart-item .cart-item-options .cart-details .cart-quantity {\n color: #aaaaaa !important; }\n\n.shipping-info-checkout-review, .order_confirmation th {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\n\n/* Homepage ********************************* */\n.store .home-graphic {\n border: 1px solid #777777;\n color: #777777 !important; }\n.store .home-search-form #search-box input[type=\"text\"]::-webkit-input-placeholder {\n color: #dddddd; }\n.store .home-search-form #search-box input[type=\"text\"]:-moz-placeholder {\n color: #dddddd; }\n.store ul#features li {\n background-color: #909090 !important;\n border: 1px solid #777777;\n -webkit-box-shadow: inset 1px 1px 0 #aaaaaa !important;\n -moz-box-shadow: inset 1px 1px 0 #aaaaaa !important;\n border-right-color: #777777;\n color: white !important; }\n.store h3#satisfaction span, .store h3#shipping span {\n color: #aaaaaa; }\n.store #location-slider li div.location h4 {\n color: #aaaaaa; }\n.store .social-home h3 {\n border-bottom: 1px solid #aaaaaa;\n color: #5d5d5d;\n text-shadow: 0 1px 0 #dddddd;\n background: #c3c3c3;\n box-shadow: inset 0 1px 0 #c3c3c3; }\n.store .about-us, .store .our-store {\n border: 1px solid #aaaaaa;\n background-color: white; }\n.store .store .adoption-search .or-find-by {\n color: #777777 !important; }\n\n/* user#sign_up ********************************* */\n#sign-up-form .terms {\n border-top: 1px solid #aaaaaa; }\n\n\n//<![CDATA[\nvar shipping_address = null\n//]]>\n\n\n\t\n\t Email: \n\t \tPassword: \n\t Forgot Password?\n\t\n\n\n\n\n\nHello, name_1181 Logout\n\n\n\n\n\nShopping Cart (1)\n\n\n\nHome\n\n\nMy Account\n\nMy Rentals\n\n\n\n\nsomebody300\n\n\n\n\n\n\n\n\n\nThe credit card information is incorrect\n\n\n\n \nWarning: Due to the high volume of orders during the holiday season, you may experience delays in your shipping.\n\n\n\n \n\n Agreement Terms\n\n\n\t\t\t\n\t\t\t Billing Info\n\t\t\t\n\n\t\t\t\n\t\t\t Order Review\n\t\t\t\n\t\tBilling Information\n\n \n \n Credit Card\n \n \n Use an existing credit card:\n Joe User / Visa / xxxxxxxxxxxx1111\n \n Add a new card:\n \n \n \n \n\n \n \n\n \n First Name\n \n \n Last Name\n \n \n Card type\n MastercardDiscoverVisaAmerican Express\n \n Card Number\n \n \n Security Code\n \n \n Expiration Date\n 01020304050607080910111220122013201420152016201720182019202020212022\n \n Save this card as default\n \n \n \n \n \n \n Credit Card Billing Address\n \n NOTE: Billing address must match the address on file with your credit card company.\n \n \n Same as shipping address\n \n \n \n \n\n\n \n First Name\n \n \n Last Name\n \n \n Address 1\n (Use for actual street address or post office box.)\n\n \n \n Address 2\n (Use for Apartment, Building, Unit, Floor, Suite, etc)\n \n \n Country\n AfghanistanAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntarcticaAntigua And BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBoliviaBosnia And HerzegovinaBotswanaBouvet IslandBrazilBritish Indian Ocean TerritoryBruneiBulgariaBurkina FasoBurundiCambodiaCameroonCanadaCape VerdeCayman IslandsCentral African RepublicChadChileChinaChristmas IslandCocos (Keeling) IslandsColumbiaComorosCongoCook IslandsCosta RicaCote D'Ivorie (Ivory Coast)Croatia (Hrvatska)CubaCyprusCzech RepublicDemocratic Republic Of Congo (Zaire)DenmarkDjiboutiDominicaDominican RepublicEast TimorEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEthiopiaFalkland Islands (Malvinas)Faroe IslandsFijiFinlandFranceFrance, MetropolitanFrench GuineaFrench PolynesiaFrench Southern TerritoriesGabonGambiaGeorgiaGermanyGhanaGibraltarGreeceGreenlandGrenadaGuadeloupeGuamGuatemalaGuineaGuinea-BissauGuyanaHaitiHeard And McDonald IslandsHondurasHong KongHungaryIcelandIndiaIndonesiaIranIraqIrelandIsraelItalyJamaicaJapanJordanKazakhstanKenyaKiribatiKuwaitKyrgyzstanLaosLatviaLebanonLesothoLiberiaLibyaLiechtensteinLithuaniaLuxembourgMacauMacedoniaMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall IslandsMartiniqueMauritaniaMauritiusMayotteMexicoMicronesiaMoldovaMonacoMongoliaMontserratMoroccoMozambiqueMyanmar (Burma)NamibiaNauruNepalNetherlandsNetherlands AntillesNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandNorth KoreaNorthern Mariana IslandsNorwayOmanPakistanPalauPanamaPapua New GuineaParaguayPeruPhilippinesPitcairnPolandPortugalPuerto RicoQatarReunionRomaniaRussiaRwandaSaint HelenaSaint Kitts And NevisSaint LuciaSaint Pierre And MiquelonSaint Vincent And The GrenadinesSan MarinoSao Tome And PrincipeSaudi ArabiaSenegalSeychellesSierra LeoneSingaporeSlovak RepublicSloveniaSolomon IslandsSomaliaSouth AfricaSouth Georgia And South Sandwich IslandsSouth KoreaSpainSri LankaSudanSurinameSvalbard And Jan MayenSwazilandSwedenSwitzerlandSyriaTaiwanTajikistanTanzaniaThailandTogoTokelauTongaTrinidad And TobagoTunisiaTurkeyTurkmenistanTurks And Caicos IslandsTuvaluUgandaUkraineUnited Arab EmiratesUnited KingdomUnited StatesUnited States Minor Outlying IslandsUruguayUzbekistanVanuatuVatican City (Holy See)VenezuelaVietnamVirgin Islands (British)Virgin Islands (US)Wallis And Futuna IslandsWestern SaharaWestern SamoaYemenYugoslaviaZambiaZimbabwe\n \n City\n \n \n State or Province\n AlabamaAlaskaArizonaArkansasCaliforniaColoradoConnecticutDelawareDistrict Of ColumbiaFloridaGeorgiaHawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMarylandMassachusettsMichiganMinnesotaMississippiMissouriMontanaNebraskaNevadaNew HampshireNew JerseyNew MexicoNew YorkNorth CarolinaNorth DakotaOhioOklahomaOregonPennsylvaniaRhode IslandSouth CarolinaSouth DakotaTennesseeTexasUtahVermontVirginiaWashingtonWest VirginiaWisconsinWyoming\n \n Zip Code\n \n \n Phone\n \n \n Use address as default\n \n \n\n\n \n \n\n\n\n\nTerms of Use\nPrivacy Policy\nContact Us\nFAQ\n\nCopyright\n2012\nFollett. All Right Reserved.\n\n\n //<![CDATA[\n var _gaq = _gaq || [];\n _gaq.push(['_setAccount', 'UA-24220693-1']);\n _gaq.push(['_setDomainName', '.rentsbooks.com']);\n _gaq.push(['_trackPageview']);\n \n (function() {\n var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n })();\n //]]>\n" | |
# ./spec/requests/checkouts_spec.rb:63 | |
13) Checkouts Given I am a logged in user And I choose to buy a digital book When I am at the 'Review' page And I place the order I can see the Download URL and the Activation PIN | |
Failure/Error: click_on "Place your order" | |
Capybara::ElementNotFound: | |
no link or button 'Place your order' found | |
# (eval):2:in `send' | |
# (eval):2:in `click_on' | |
# ./spec/requests/checkouts_spec.rb:78 | |
14) Checkouts Given I am a logged in user And I choose to rent a book When I am at the 'Billing' page And I want to add a new credit card I can create a new credit card If it is valid | |
Failure/Error: page.should have_content "Shipping/Billing Information" | |
expected there to be content "Shipping/Billing Information" in "\nsomebody314\n\n/* vars ******************************************* */\n/* end vars *************************************** */\n/* mixins ******************************************* */\n/* end mixins *************************************** */\n/* Search *************************************** */\n#search-box input[type=\"text\"] {\n box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.4);\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3);\n color: white; }\n\n/* block elements ************************************* */\nh2.title {\n color: #2a2a2a;\n text-shadow: 0 1px 0 white; }\n\nheader .store-name {\n color: #d0d0d0; }\nheader #header-nav-bottom {\n border-top: 2px solid #909090 !important; }\n\n.big {\n color: #aaaaaa; }\n\nlabel {\n color: #aaaaaa !important; }\n\nfooter {\n background-color: #aaaaaa;\n border-top: 1px solid #777777; }\n footer a {\n color: white !important; }\n\n/* links ********************************************* */\na {\n color: #d0d0d0; }\n\na.large {\n color: #d0d0d0; }\n\n#return-books a {\n color: #333333; }\n\n/* Shared ****************************************** */\n#ui-datepicker-div {\n border: 3px solid #c3c3c3; }\n #ui-datepicker-div .ui-widget-header {\n background-color: #c3c3c3; }\n\n#main, #main.home, article#static_pages {\n border-top: 1px solid #777777;\n background: #aaaaaa url(\"/assets/arches-affiliate.png\") no-repeat center 30px; }\n\n#main.affiliate, #main.home.affiliate {\n border-top: 1px solid #444444;\n background: #aaaaaa url(\"/assets/arches-affiliate.png\") no-repeat top center; }\n\ninput[type=\"text\"], input[type=\"password\"], input[type=\"email\"], select {\n border: 1px solid #dddddd;\n box-shadow: inset 1px 1px 3px #eaeaea; }\n\n#site-list, .site-list, .checkout, .checkout-review, .order_confirmation {\n border: 1px solid #aaaaaa !important; }\n\n.icon {\n color: #aaaaaa; }\n\n.adoption-search .icon, .adoption-search .column-a, .adoption-search .column-b {\n color: white; }\n\n.adoption-search .column-a {\n border-bottom: 1px solid white; }\n\n.faq dt:before {\n color: #aaaaaa;\n background-color: #aaaaaa; }\n\n.faq dd:before {\n color: #aaaaaa;\n background-color: #aaaaaa; }\n\nbody.accounts form h3 {\n background-color: #aaaaaa;\n color: #aaaaaa; }\n\nbody.accounts section h3, body.accounts section .site-list-header, body.orders section h3, body.orders section .site-list-header, body.carts section h3, body.carts section .site-list-header, body.product_searches section h3, body.product_searches section .site-list-header, body.adoption_searches section h3, body.adoption_searches section .site-list-header {\n border-bottom: 1px solid #aaaaaa !important;\n background-color: #aaaaaa !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important;\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important; }\nbody.accounts submit-button, body.orders submit-button, body.carts submit-button, body.product_searches submit-button, body.adoption_searches submit-button {\n margin-top: 0; }\n\nbody.registrations .site-list-header, body.registrations .checkout-items.review th, body.registrations .confirm-header, body.registrations h1, body.registrations .checkout_terms_items th, body.shippings .site-list-header, body.shippings .checkout-items.review th, body.shippings .confirm-header, body.shippings h1, body.shippings .checkout_terms_items th, body.billings .site-list-header, body.billings .checkout-items.review th, body.billings .confirm-header, body.billings h1, body.billings .checkout_terms_items th, body.reviews .site-list-header, body.reviews .checkout-items.review th, body.reviews .confirm-header, body.reviews h1, body.reviews .checkout_terms_items th, .legal .site-list-header, .legal .checkout-items.review th, .legal .confirm-header, .legal h1, .legal .checkout_terms_items th {\n border-bottom: 1px solid #aaaaaa !important;\n background-color: #aaaaaa !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important;\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important; }\nbody.registrations h3, body.registrations .checkout-items.receipt th, body.shippings h3, body.shippings .checkout-items.receipt th, body.billings h3, body.billings .checkout-items.receipt th, body.reviews h3, body.reviews .checkout-items.receipt th, .legal h3, .legal .checkout-items.receipt th {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\n\n.dialog form h3.section-header {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\n\n#account-information {\n border: 1px solid #aaaaaa !important; }\n\n.my-account-right-header, .my-account-header {\n border-bottom: 1px solid #aaaaaa !important;\n background-color: #aaaaaa !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important;\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important; }\n\n.account-information-section h4 {\n color: #aaaaaa !important; }\n\n#order-history {\n border: 1px solid #aaaaaa !important; }\n\n.order-single h4 {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\n .order-single h4 a {\n color: #9d9d9d !important; }\n.order-single li {\n color: #aaaaaa !important;\n border-bottom: 1px solid #f6f6f6 !important; }\n\n.ui-dialog.ui-widget.ui-widget-content {\n border: 1px solid #aaaaaa !important; }\n\n.ui-dialog-titlebar {\n border-bottom: 1px solid #aaaaaa !important;\n color: #5d5d5d !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background: #c3c3c3 !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important; }\n\n.dialog li.button {\n border: 1px solid #eaeaea !important; }\n\n.order-item {\n border-bottom: 1px solid #eaeaea !important; }\n\n/* My Rentals ************************************* */\n.rentals .rental_options input[type=\"submit\"], .rentals .rental_options input[type=\"submit\"]:hover {\n border: 1px solid #a3a3a3 !important;\n color: #6f6f6f !important;\n text-shadow: 0 1px 0 white;\n background-color: #efefef;\n background-image: none;\n box-shadow: inset 0px 1px 0px white !important; }\n.rentals .rental_options input[type=\"submit\"]:hover {\n background-color: #d5d5d5 !important; }\n.rentals .rental-item {\n border-bottom: 1px solid #f6f6f6; }\n.rentals .rental-due li:first-child {\n color: #aaaaaa; }\n.rentals .rental-due li:first-child span {\n color: #2a2a2a; }\n.rentals .rental-due li:nth-child(2) {\n color: #2a2a2a; }\n.rentals .rental-due li:first-child span.overdue {\n color: #990000; }\n.rentals a.mark, .rentals a.mark:hover {\n background: #efefef url(\"/assets/mark_icon.png\") no-repeat 10px 6px !important; }\n.rentals a.mark:hover {\n background-color: #efefef !important; }\n.rentals a.marked, .rentals a.marked:hover {\n color: #5b5474 !important;\n background: #dddddd url(\"/assets/marked_icon.png\") no-repeat 10px 7px !important;\n text-shadow: 0 1px 0 #f6f6f6 !important;\n border: 1px solid #736992 !important;\n box-shadow: inset 0 1px 0 #f6f6f6 !important; }\n.rentals a.marked:hover {\n background-color: #b8b3c8 !important; }\n\n/* Order details ********************************** */\n.orders #order-shipping {\n border: 1px solid #aaaaaa;\n background-color: white !important; }\n.orders #order-summary {\n border: 1px solid #aaaaaa;\n background-color: white !important; }\n.orders .order-details-right-header, .orders .order-details-header {\n border-bottom: 1px solid #aaaaaa;\n color: #5d5d5d;\n text-shadow: 0 1px 0 #dddddd;\n background: #c3c3c3 url(\"/assets/search_form_bg.png\") repeat-x bottom left;\n box-shadow: inset 0 1px 0 #c3c3c3; }\n.orders .order-item {\n border-bottom: 1px solid #f6f6f6; }\n.orders #status li:nth-child(2) {\n color: #444444; }\n.orders #item-terms li:first-child {\n color: #aaaaaa; }\n.orders #item-terms li:nth-child(2) {\n color: #2a2a2a; }\n.orders #total li span {\n background-color: white; }\n.orders #total li span:last-child {\n background-color: white;\n color: #aaaaaa; }\n.orders #total span:last-child.price {\n color: #444444; }\n.orders #transaction-list {\n background-color: white !important;\n border-color: #aaaaaa !important; }\n.orders #transaction-list tr:first-child {\n background-color: white; }\n.orders #transaction-list tr:first-child th {\n color: #aaaaaa;\n border-bottom: 1px solid #dddddd;\n box-shadow: inset 0 -1px 0 white; }\n.orders .even {\n background-color: white !important; }\n.orders .odd {\n background-color: white !important; }\n .orders .odd td {\n border-top: 1px solid #f6f6f6;\n border-bottom: 1px solid #f6f6f6; }\n\n/* Product details ********************************* */\n.books .product-display li span {\n color: #aaaaaa !important;\n text-shadow: 0 1px 0 white; }\n.books .product-display #description h4 {\n color: #aaaaaa !important; }\n.books .product-pricing {\n border: 1px solid #aaaaaa !important;\n background-color: white; }\n .books .product-pricing .cart_item {\n background-color: white; }\n.books .product-pricing-right-header {\n border-bottom: 1px solid #aaaaaa !important;\n background-color: #aaaaaa !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important;\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important; }\n.books #item-submit {\n background-color: #efefef;\n background-image: none; }\n.books .rental_period label {\n color: #aaaaaa !important; }\n .books .rental_period label .picker input {\n border: 1px solid #cccccc;\n color: #777777 !important; }\n.books span.select, .books .rental_period span.to {\n color: #777777 !important; }\n.books p.list-price {\n color: #aaaaaa !important; }\n\n/* Checkout *********************************** */\nbody.carts .cart-checkout {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\nbody.carts span.to {\n color: #aaaaaa !important; }\nbody.carts .cart-item .cart-item-options .cart-details .purchase_option, body.carts .cart-item .cart-item-options .cart-details .cart-quantity {\n color: #aaaaaa !important; }\n\n.shipping-info-checkout-review, .order_confirmation th {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\n\n/* Homepage ********************************* */\n.store .home-graphic {\n border: 1px solid #777777;\n color: #777777 !important; }\n.store .home-search-form #search-box input[type=\"text\"]::-webkit-input-placeholder {\n color: #dddddd; }\n.store .home-search-form #search-box input[type=\"text\"]:-moz-placeholder {\n color: #dddddd; }\n.store ul#features li {\n background-color: #909090 !important;\n border: 1px solid #777777;\n -webkit-box-shadow: inset 1px 1px 0 #aaaaaa !important;\n -moz-box-shadow: inset 1px 1px 0 #aaaaaa !important;\n border-right-color: #777777;\n color: white !important; }\n.store h3#satisfaction span, .store h3#shipping span {\n color: #aaaaaa; }\n.store #location-slider li div.location h4 {\n color: #aaaaaa; }\n.store .social-home h3 {\n border-bottom: 1px solid #aaaaaa;\n color: #5d5d5d;\n text-shadow: 0 1px 0 #dddddd;\n background: #c3c3c3;\n box-shadow: inset 0 1px 0 #c3c3c3; }\n.store .about-us, .store .our-store {\n border: 1px solid #aaaaaa;\n background-color: white; }\n.store .store .adoption-search .or-find-by {\n color: #777777 !important; }\n\n/* user#sign_up ********************************* */\n#sign-up-form .terms {\n border-top: 1px solid #aaaaaa; }\n\n\n//<![CDATA[\nvar shipping_address = {\"address\":{\"city\":\"San Francisco\",\"created_at\":\"2012-03-30T12:34:22-05:00\",\"cell\":null,\"country\":\"US\",\"default\":null,\"updated_at\":\"2012-03-30T12:34:24-05:00\",\"zipcode\":\"94105\",\"addressable_type\":\"Order\",\"addressable_id\":1,\"id\":3,\"address_1\":\"301 Main street\",\"foreign_state\":null,\"address_2\":\"unit 11b\",\"fax\":null,\"last_name\":\"Wobo\",\"phone\":\"555-555-2434\",\"first_name\":\"Luca\",\"state\":\"CA\"}}\n//]]>\n\n\n\t\n\t Email: \n\t \tPassword: \n\t Forgot Password?\n\t\n\n\n\n\n\nHello, name_1199 Logout\n\n\n\n\n\nShopping Cart (1)\n\n\n\nHome\n\n\nMy Account\n\nMy Rentals\n\n\n\n\nsomebody314\n\n\n\n\n\n\n\n\n\nThe credit card information is incorrect\n\n\n\n \nWarning: Due to the high volume of orders during the holiday season, you may experience delays in your shipping.\n\n\n\n \n\n Agreement Terms\n\n \n Shipping Info\n \n\n\t\t\t\n\t\t\t Billing Info\n\t\t\t\n\n\t\t\t\n\t\t\t Order Review\n\t\t\t\n\t\tBilling Information\n\n \n \n Credit Card\n \n \n Use an existing credit card:\n Joe User / Visa / xxxxxxxxxxxx1111\n \n Add a new card:\n \n \n \n \n\n \n \n\n \n First Name\n \n \n Last Name\n \n \n Card type\n MastercardDiscoverVisaAmerican Express\n \n Card Number\n \n \n Security Code\n \n \n Expiration Date\n 01020304050607080910111220122013201420152016201720182019202020212022\n \n Save this card as default\n \n \n \n \n \n \n Credit Card Billing Address\n \n NOTE: Billing address must match the address on file with your credit card company.\n \n \n Same as shipping address\n \n \n \n \n\n\n \n First Name\n \n \n Last Name\n \n \n Address 1\n (Use for actual street address or post office box.)\n\n \n \n Address 2\n (Use for Apartment, Building, Unit, Floor, Suite, etc)\n \n \n Country\n AfghanistanAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntarcticaAntigua And BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBoliviaBosnia And HerzegovinaBotswanaBouvet IslandBrazilBritish Indian Ocean TerritoryBruneiBulgariaBurkina FasoBurundiCambodiaCameroonCanadaCape VerdeCayman IslandsCentral African RepublicChadChileChinaChristmas IslandCocos (Keeling) IslandsColumbiaComorosCongoCook IslandsCosta RicaCote D'Ivorie (Ivory Coast)Croatia (Hrvatska)CubaCyprusCzech RepublicDemocratic Republic Of Congo (Zaire)DenmarkDjiboutiDominicaDominican RepublicEast TimorEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEthiopiaFalkland Islands (Malvinas)Faroe IslandsFijiFinlandFranceFrance, MetropolitanFrench GuineaFrench PolynesiaFrench Southern TerritoriesGabonGambiaGeorgiaGermanyGhanaGibraltarGreeceGreenlandGrenadaGuadeloupeGuamGuatemalaGuineaGuinea-BissauGuyanaHaitiHeard And McDonald IslandsHondurasHong KongHungaryIcelandIndiaIndonesiaIranIraqIrelandIsraelItalyJamaicaJapanJordanKazakhstanKenyaKiribatiKuwaitKyrgyzstanLaosLatviaLebanonLesothoLiberiaLibyaLiechtensteinLithuaniaLuxembourgMacauMacedoniaMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall IslandsMartiniqueMauritaniaMauritiusMayotteMexicoMicronesiaMoldovaMonacoMongoliaMontserratMoroccoMozambiqueMyanmar (Burma)NamibiaNauruNepalNetherlandsNetherlands AntillesNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandNorth KoreaNorthern Mariana IslandsNorwayOmanPakistanPalauPanamaPapua New GuineaParaguayPeruPhilippinesPitcairnPolandPortugalPuerto RicoQatarReunionRomaniaRussiaRwandaSaint HelenaSaint Kitts And NevisSaint LuciaSaint Pierre And MiquelonSaint Vincent And The GrenadinesSan MarinoSao Tome And PrincipeSaudi ArabiaSenegalSeychellesSierra LeoneSingaporeSlovak RepublicSloveniaSolomon IslandsSomaliaSouth AfricaSouth Georgia And South Sandwich IslandsSouth KoreaSpainSri LankaSudanSurinameSvalbard And Jan MayenSwazilandSwedenSwitzerlandSyriaTaiwanTajikistanTanzaniaThailandTogoTokelauTongaTrinidad And TobagoTunisiaTurkeyTurkmenistanTurks And Caicos IslandsTuvaluUgandaUkraineUnited Arab EmiratesUnited KingdomUnited StatesUnited States Minor Outlying IslandsUruguayUzbekistanVanuatuVatican City (Holy See)VenezuelaVietnamVirgin Islands (British)Virgin Islands (US)Wallis And Futuna IslandsWestern SaharaWestern SamoaYemenYugoslaviaZambiaZimbabwe\n \n City\n \n \n State or Province\n AlabamaAlaskaArizonaArkansasCaliforniaColoradoConnecticutDelawareDistrict Of ColumbiaFloridaGeorgiaHawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMarylandMassachusettsMichiganMinnesotaMississippiMissouriMontanaNebraskaNevadaNew HampshireNew JerseyNew MexicoNew YorkNorth CarolinaNorth DakotaOhioOklahomaOregonPennsylvaniaRhode IslandSouth CarolinaSouth DakotaTennesseeTexasUtahVermontVirginiaWashingtonWest VirginiaWisconsinWyoming\n \n Zip Code\n \n \n Phone\n \n \n Use address as default\n \n \n\n\n \n \n\n\n\n\nTerms of Use\nPrivacy Policy\nContact Us\nFAQ\n\nCopyright\n2012\nFollett. All Right Reserved.\n\n\n //<![CDATA[\n var _gaq = _gaq || [];\n _gaq.push(['_setAccount', 'UA-24220693-1']);\n _gaq.push(['_setDomainName', '.rentsbooks.com']);\n _gaq.push(['_trackPageview']);\n \n (function() {\n var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n })();\n //]]>\n" | |
# ./spec/requests/checkouts_spec.rb:246 | |
15) Checkouts Given I am a logged in user And I choose to rent a book When I am at the 'Billing' page And I want to use an existent credit card I can select an existent credit card and continue with the checkout | |
Failure/Error: page.should have_content "Shipping/Billing Information" | |
expected there to be content "Shipping/Billing Information" in "\nsomebody318\n\n/* vars ******************************************* */\n/* end vars *************************************** */\n/* mixins ******************************************* */\n/* end mixins *************************************** */\n/* Search *************************************** */\n#search-box input[type=\"text\"] {\n box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.4);\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3);\n color: white; }\n\n/* block elements ************************************* */\nh2.title {\n color: #2a2a2a;\n text-shadow: 0 1px 0 white; }\n\nheader .store-name {\n color: #d0d0d0; }\nheader #header-nav-bottom {\n border-top: 2px solid #909090 !important; }\n\n.big {\n color: #aaaaaa; }\n\nlabel {\n color: #aaaaaa !important; }\n\nfooter {\n background-color: #aaaaaa;\n border-top: 1px solid #777777; }\n footer a {\n color: white !important; }\n\n/* links ********************************************* */\na {\n color: #d0d0d0; }\n\na.large {\n color: #d0d0d0; }\n\n#return-books a {\n color: #333333; }\n\n/* Shared ****************************************** */\n#ui-datepicker-div {\n border: 3px solid #c3c3c3; }\n #ui-datepicker-div .ui-widget-header {\n background-color: #c3c3c3; }\n\n#main, #main.home, article#static_pages {\n border-top: 1px solid #777777;\n background: #aaaaaa url(\"/assets/arches-affiliate.png\") no-repeat center 30px; }\n\n#main.affiliate, #main.home.affiliate {\n border-top: 1px solid #444444;\n background: #aaaaaa url(\"/assets/arches-affiliate.png\") no-repeat top center; }\n\ninput[type=\"text\"], input[type=\"password\"], input[type=\"email\"], select {\n border: 1px solid #dddddd;\n box-shadow: inset 1px 1px 3px #eaeaea; }\n\n#site-list, .site-list, .checkout, .checkout-review, .order_confirmation {\n border: 1px solid #aaaaaa !important; }\n\n.icon {\n color: #aaaaaa; }\n\n.adoption-search .icon, .adoption-search .column-a, .adoption-search .column-b {\n color: white; }\n\n.adoption-search .column-a {\n border-bottom: 1px solid white; }\n\n.faq dt:before {\n color: #aaaaaa;\n background-color: #aaaaaa; }\n\n.faq dd:before {\n color: #aaaaaa;\n background-color: #aaaaaa; }\n\nbody.accounts form h3 {\n background-color: #aaaaaa;\n color: #aaaaaa; }\n\nbody.accounts section h3, body.accounts section .site-list-header, body.orders section h3, body.orders section .site-list-header, body.carts section h3, body.carts section .site-list-header, body.product_searches section h3, body.product_searches section .site-list-header, body.adoption_searches section h3, body.adoption_searches section .site-list-header {\n border-bottom: 1px solid #aaaaaa !important;\n background-color: #aaaaaa !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important;\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important; }\nbody.accounts submit-button, body.orders submit-button, body.carts submit-button, body.product_searches submit-button, body.adoption_searches submit-button {\n margin-top: 0; }\n\nbody.registrations .site-list-header, body.registrations .checkout-items.review th, body.registrations .confirm-header, body.registrations h1, body.registrations .checkout_terms_items th, body.shippings .site-list-header, body.shippings .checkout-items.review th, body.shippings .confirm-header, body.shippings h1, body.shippings .checkout_terms_items th, body.billings .site-list-header, body.billings .checkout-items.review th, body.billings .confirm-header, body.billings h1, body.billings .checkout_terms_items th, body.reviews .site-list-header, body.reviews .checkout-items.review th, body.reviews .confirm-header, body.reviews h1, body.reviews .checkout_terms_items th, .legal .site-list-header, .legal .checkout-items.review th, .legal .confirm-header, .legal h1, .legal .checkout_terms_items th {\n border-bottom: 1px solid #aaaaaa !important;\n background-color: #aaaaaa !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important;\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important; }\nbody.registrations h3, body.registrations .checkout-items.receipt th, body.shippings h3, body.shippings .checkout-items.receipt th, body.billings h3, body.billings .checkout-items.receipt th, body.reviews h3, body.reviews .checkout-items.receipt th, .legal h3, .legal .checkout-items.receipt th {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\n\n.dialog form h3.section-header {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\n\n#account-information {\n border: 1px solid #aaaaaa !important; }\n\n.my-account-right-header, .my-account-header {\n border-bottom: 1px solid #aaaaaa !important;\n background-color: #aaaaaa !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important;\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important; }\n\n.account-information-section h4 {\n color: #aaaaaa !important; }\n\n#order-history {\n border: 1px solid #aaaaaa !important; }\n\n.order-single h4 {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\n .order-single h4 a {\n color: #9d9d9d !important; }\n.order-single li {\n color: #aaaaaa !important;\n border-bottom: 1px solid #f6f6f6 !important; }\n\n.ui-dialog.ui-widget.ui-widget-content {\n border: 1px solid #aaaaaa !important; }\n\n.ui-dialog-titlebar {\n border-bottom: 1px solid #aaaaaa !important;\n color: #5d5d5d !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background: #c3c3c3 !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important; }\n\n.dialog li.button {\n border: 1px solid #eaeaea !important; }\n\n.order-item {\n border-bottom: 1px solid #eaeaea !important; }\n\n/* My Rentals ************************************* */\n.rentals .rental_options input[type=\"submit\"], .rentals .rental_options input[type=\"submit\"]:hover {\n border: 1px solid #a3a3a3 !important;\n color: #6f6f6f !important;\n text-shadow: 0 1px 0 white;\n background-color: #efefef;\n background-image: none;\n box-shadow: inset 0px 1px 0px white !important; }\n.rentals .rental_options input[type=\"submit\"]:hover {\n background-color: #d5d5d5 !important; }\n.rentals .rental-item {\n border-bottom: 1px solid #f6f6f6; }\n.rentals .rental-due li:first-child {\n color: #aaaaaa; }\n.rentals .rental-due li:first-child span {\n color: #2a2a2a; }\n.rentals .rental-due li:nth-child(2) {\n color: #2a2a2a; }\n.rentals .rental-due li:first-child span.overdue {\n color: #990000; }\n.rentals a.mark, .rentals a.mark:hover {\n background: #efefef url(\"/assets/mark_icon.png\") no-repeat 10px 6px !important; }\n.rentals a.mark:hover {\n background-color: #efefef !important; }\n.rentals a.marked, .rentals a.marked:hover {\n color: #5b5474 !important;\n background: #dddddd url(\"/assets/marked_icon.png\") no-repeat 10px 7px !important;\n text-shadow: 0 1px 0 #f6f6f6 !important;\n border: 1px solid #736992 !important;\n box-shadow: inset 0 1px 0 #f6f6f6 !important; }\n.rentals a.marked:hover {\n background-color: #b8b3c8 !important; }\n\n/* Order details ********************************** */\n.orders #order-shipping {\n border: 1px solid #aaaaaa;\n background-color: white !important; }\n.orders #order-summary {\n border: 1px solid #aaaaaa;\n background-color: white !important; }\n.orders .order-details-right-header, .orders .order-details-header {\n border-bottom: 1px solid #aaaaaa;\n color: #5d5d5d;\n text-shadow: 0 1px 0 #dddddd;\n background: #c3c3c3 url(\"/assets/search_form_bg.png\") repeat-x bottom left;\n box-shadow: inset 0 1px 0 #c3c3c3; }\n.orders .order-item {\n border-bottom: 1px solid #f6f6f6; }\n.orders #status li:nth-child(2) {\n color: #444444; }\n.orders #item-terms li:first-child {\n color: #aaaaaa; }\n.orders #item-terms li:nth-child(2) {\n color: #2a2a2a; }\n.orders #total li span {\n background-color: white; }\n.orders #total li span:last-child {\n background-color: white;\n color: #aaaaaa; }\n.orders #total span:last-child.price {\n color: #444444; }\n.orders #transaction-list {\n background-color: white !important;\n border-color: #aaaaaa !important; }\n.orders #transaction-list tr:first-child {\n background-color: white; }\n.orders #transaction-list tr:first-child th {\n color: #aaaaaa;\n border-bottom: 1px solid #dddddd;\n box-shadow: inset 0 -1px 0 white; }\n.orders .even {\n background-color: white !important; }\n.orders .odd {\n background-color: white !important; }\n .orders .odd td {\n border-top: 1px solid #f6f6f6;\n border-bottom: 1px solid #f6f6f6; }\n\n/* Product details ********************************* */\n.books .product-display li span {\n color: #aaaaaa !important;\n text-shadow: 0 1px 0 white; }\n.books .product-display #description h4 {\n color: #aaaaaa !important; }\n.books .product-pricing {\n border: 1px solid #aaaaaa !important;\n background-color: white; }\n .books .product-pricing .cart_item {\n background-color: white; }\n.books .product-pricing-right-header {\n border-bottom: 1px solid #aaaaaa !important;\n background-color: #aaaaaa !important;\n box-shadow: inset 0 1px 0 #c3c3c3 !important;\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important; }\n.books #item-submit {\n background-color: #efefef;\n background-image: none; }\n.books .rental_period label {\n color: #aaaaaa !important; }\n .books .rental_period label .picker input {\n border: 1px solid #cccccc;\n color: #777777 !important; }\n.books span.select, .books .rental_period span.to {\n color: #777777 !important; }\n.books p.list-price {\n color: #aaaaaa !important; }\n\n/* Checkout *********************************** */\nbody.carts .cart-checkout {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\nbody.carts span.to {\n color: #aaaaaa !important; }\nbody.carts .cart-item .cart-item-options .cart-details .purchase_option, body.carts .cart-item .cart-item-options .cart-details .cart-quantity {\n color: #aaaaaa !important; }\n\n.shipping-info-checkout-review, .order_confirmation th {\n color: #909090 !important;\n text-shadow: 0 1px 0 #dddddd !important;\n background-color: white !important;\n box-shadow: inset 0 -1px 0 white !important;\n border-bottom: 1px solid #f6f6f6 !important;\n border-top: 1px solid #f6f6f6 !important; }\n\n/* Homepage ********************************* */\n.store .home-graphic {\n border: 1px solid #777777;\n color: #777777 !important; }\n.store .home-search-form #search-box input[type=\"text\"]::-webkit-input-placeholder {\n color: #dddddd; }\n.store .home-search-form #search-box input[type=\"text\"]:-moz-placeholder {\n color: #dddddd; }\n.store ul#features li {\n background-color: #909090 !important;\n border: 1px solid #777777;\n -webkit-box-shadow: inset 1px 1px 0 #aaaaaa !important;\n -moz-box-shadow: inset 1px 1px 0 #aaaaaa !important;\n border-right-color: #777777;\n color: white !important; }\n.store h3#satisfaction span, .store h3#shipping span {\n color: #aaaaaa; }\n.store #location-slider li div.location h4 {\n color: #aaaaaa; }\n.store .social-home h3 {\n border-bottom: 1px solid #aaaaaa;\n color: #5d5d5d;\n text-shadow: 0 1px 0 #dddddd;\n background: #c3c3c3;\n box-shadow: inset 0 1px 0 #c3c3c3; }\n.store .about-us, .store .our-store {\n border: 1px solid #aaaaaa;\n background-color: white; }\n.store .store .adoption-search .or-find-by {\n color: #777777 !important; }\n\n/* user#sign_up ********************************* */\n#sign-up-form .terms {\n border-top: 1px solid #aaaaaa; }\n\n\n//<![CDATA[\nvar shipping_address = {\"address\":{\"city\":\"San Francisco\",\"created_at\":\"2012-03-30T12:34:57-05:00\",\"cell\":null,\"country\":\"US\",\"default\":null,\"updated_at\":\"2012-03-30T12:34:59-05:00\",\"zipcode\":\"94105\",\"addressable_type\":\"Order\",\"addressable_id\":1,\"id\":3,\"address_1\":\"301 Main street\",\"foreign_state\":null,\"address_2\":\"unit 11b\",\"fax\":null,\"last_name\":\"Wobo\",\"phone\":\"555-555-2450\",\"first_name\":\"Luca\",\"state\":\"CA\"}}\n//]]>\n\n\n\t\n\t Email: \n\t \tPassword: \n\t Forgot Password?\n\t\n\n\n\n\n\nHello, name_1207 Logout\n\n\n\n\n\nShopping Cart (1)\n\n\n\nHome\n\n\nMy Account\n\nMy Rentals\n\n\n\n\nsomebody318\n\n\n\n\n\n\n\n\n\nThe credit card information is incorrect\n\n\n\n \nWarning: Due to the high volume of orders during the holiday season, you may experience delays in your shipping.\n\n\n\n \n\n Agreement Terms\n\n \n Shipping Info\n \n\n\t\t\t\n\t\t\t Billing Info\n\t\t\t\n\n\t\t\t\n\t\t\t Order Review\n\t\t\t\n\t\tBilling Information\n\n \n \n Credit Card\n \n \n Use an existing credit card:\n Joe User / Visa / xxxxxxxxxxxx1111\n \n Add a new card:\n \n \n \n \n\n \n \n\n \n First Name\n \n \n Last Name\n \n \n Card type\n MastercardDiscoverVisaAmerican Express\n \n Card Number\n \n \n Security Code\n \n \n Expiration Date\n 01020304050607080910111220122013201420152016201720182019202020212022\n \n Save this card as default\n \n \n \n \n \n \n Credit Card Billing Address\n \n NOTE: Billing address must match the address on file with your credit card company.\n \n \n Same as shipping address\n \n \n \n \n\n\n \n First Name\n \n \n Last Name\n \n \n Address 1\n (Use for actual street address or post office box.)\n\n \n \n Address 2\n (Use for Apartment, Building, Unit, Floor, Suite, etc)\n \n \n Country\n AfghanistanAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntarcticaAntigua And BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBoliviaBosnia And HerzegovinaBotswanaBouvet IslandBrazilBritish Indian Ocean TerritoryBruneiBulgariaBurkina FasoBurundiCambodiaCameroonCanadaCape VerdeCayman IslandsCentral African RepublicChadChileChinaChristmas IslandCocos (Keeling) IslandsColumbiaComorosCongoCook IslandsCosta RicaCote D'Ivorie (Ivory Coast)Croatia (Hrvatska)CubaCyprusCzech RepublicDemocratic Republic Of Congo (Zaire)DenmarkDjiboutiDominicaDominican RepublicEast TimorEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEthiopiaFalkland Islands (Malvinas)Faroe IslandsFijiFinlandFranceFrance, MetropolitanFrench GuineaFrench PolynesiaFrench Southern TerritoriesGabonGambiaGeorgiaGermanyGhanaGibraltarGreeceGreenlandGrenadaGuadeloupeGuamGuatemalaGuineaGuinea-BissauGuyanaHaitiHeard And McDonald IslandsHondurasHong KongHungaryIcelandIndiaIndonesiaIranIraqIrelandIsraelItalyJamaicaJapanJordanKazakhstanKenyaKiribatiKuwaitKyrgyzstanLaosLatviaLebanonLesothoLiberiaLibyaLiechtensteinLithuaniaLuxembourgMacauMacedoniaMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall IslandsMartiniqueMauritaniaMauritiusMayotteMexicoMicronesiaMoldovaMonacoMongoliaMontserratMoroccoMozambiqueMyanmar (Burma)NamibiaNauruNepalNetherlandsNetherlands AntillesNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandNorth KoreaNorthern Mariana IslandsNorwayOmanPakistanPalauPanamaPapua New GuineaParaguayPeruPhilippinesPitcairnPolandPortugalPuerto RicoQatarReunionRomaniaRussiaRwandaSaint HelenaSaint Kitts And NevisSaint LuciaSaint Pierre And MiquelonSaint Vincent And The GrenadinesSan MarinoSao Tome And PrincipeSaudi ArabiaSenegalSeychellesSierra LeoneSingaporeSlovak RepublicSloveniaSolomon IslandsSomaliaSouth AfricaSouth Georgia And South Sandwich IslandsSouth KoreaSpainSri LankaSudanSurinameSvalbard And Jan MayenSwazilandSwedenSwitzerlandSyriaTaiwanTajikistanTanzaniaThailandTogoTokelauTongaTrinidad And TobagoTunisiaTurkeyTurkmenistanTurks And Caicos IslandsTuvaluUgandaUkraineUnited Arab EmiratesUnited KingdomUnited StatesUnited States Minor Outlying IslandsUruguayUzbekistanVanuatuVatican City (Holy See)VenezuelaVietnamVirgin Islands (British)Virgin Islands (US)Wallis And Futuna IslandsWestern SaharaWestern SamoaYemenYugoslaviaZambiaZimbabwe\n \n City\n \n \n State or Province\n AlabamaAlaskaArizonaArkansasCaliforniaColoradoConnecticutDelawareDistrict Of ColumbiaFloridaGeorgiaHawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMarylandMassachusettsMichiganMinnesotaMississippiMissouriMontanaNebraskaNevadaNew HampshireNew JerseyNew MexicoNew YorkNorth CarolinaNorth DakotaOhioOklahomaOregonPennsylvaniaRhode IslandSouth CarolinaSouth DakotaTennesseeTexasUtahVermontVirginiaWashingtonWest VirginiaWisconsinWyoming\n \n Zip Code\n \n \n Phone\n \n \n Use address as default\n \n \n\n\n \n \n\n\n\n\nTerms of Use\nPrivacy Policy\nContact Us\nFAQ\n\nCopyright\n2012\nFollett. All Right Reserved.\n\n\n //<![CDATA[\n var _gaq = _gaq || [];\n _gaq.push(['_setAccount', 'UA-24220693-1']);\n _gaq.push(['_setDomainName', '.rentsbooks.com']);\n _gaq.push(['_trackPageview']);\n \n (function() {\n var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n })();\n //]]>\n" | |
# ./spec/requests/checkouts_spec.rb:285 | |
16) Checkouts Given I am a logged in user And I choose to rent a book When I am at the 'Review' page I can pay with a valid credit card | |
Failure/Error: click_on "Place your order" | |
Capybara::ElementNotFound: | |
no link or button 'Place your order' found | |
# (eval):2:in `send' | |
# (eval):2:in `click_on' | |
# ./spec/requests/checkouts_spec.rb:305 | |
17) Checkouts Given I am a logged in user And I choose to rent a book When I am at the 'Review' page I get an error If the authorization fails | |
Failure/Error: click_on "Place your order" | |
Capybara::ElementNotFound: | |
no link or button 'Place your order' found | |
# (eval):2:in `send' | |
# (eval):2:in `click_on' | |
# ./spec/requests/checkouts_spec.rb:317 | |
18) Rentals extend rental extend the rental period | |
Failure/Error: click_link "Extend Rental" | |
TypeError: | |
can't convert String into Integer | |
# ./app/models/order_item.rb:1063:in `[]' | |
# ./app/models/order_item.rb:1063:in `calculate_item_tax' | |
# ./app/models/order_item.rb:573:in `calculate_buyout_or_extension' | |
# ./app/controllers/rentals_controller.rb:55:in `set_instance_variables' | |
# (eval):2:in `send' | |
# (eval):2:in `click_link' | |
# ./spec/requests/rentals_spec.rb:68 | |
Finished in 959.63 seconds | |
1299 examples, 18 failures, 27 pending |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment