Permalink
Browse files

added specification (for testing) and created basic test case to help…

… with change management
  • Loading branch information...
1 parent 7363ff8 commit 56d891bbf17898419d8135be7a38e86cad0bf5d1 @ksylvest committed Dec 29, 2010
Showing with 454 additions and 0 deletions.
  1. +4 −0 spec/pdf-my-url/.gitignore
  2. +7 −0 spec/pdf-my-url/Gemfile
  3. +75 −0 spec/pdf-my-url/Gemfile.lock
  4. +7 −0 spec/pdf-my-url/Rakefile
  5. +3 −0 spec/pdf-my-url/app/controllers/application_controller.rb
  6. +10 −0 spec/pdf-my-url/app/controllers/main_controller.rb
  7. +2 −0 spec/pdf-my-url/app/helpers/application_helper.rb
  8. +2 −0 spec/pdf-my-url/app/helpers/main_helper.rb
  9. +14 −0 spec/pdf-my-url/app/views/layouts/application.html.erb
  10. +8 −0 spec/pdf-my-url/app/views/main/index.html.erb
  11. +4 −0 spec/pdf-my-url/config.ru
  12. +42 −0 spec/pdf-my-url/config/application.rb
  13. +13 −0 spec/pdf-my-url/config/boot.rb
  14. +22 −0 spec/pdf-my-url/config/database.yml
  15. +5 −0 spec/pdf-my-url/config/environment.rb
  16. +26 −0 spec/pdf-my-url/config/environments/development.rb
  17. +49 −0 spec/pdf-my-url/config/environments/production.rb
  18. +35 −0 spec/pdf-my-url/config/environments/test.rb
  19. +7 −0 spec/pdf-my-url/config/initializers/backtrace_silencers.rb
  20. +10 −0 spec/pdf-my-url/config/initializers/inflections.rb
  21. +5 −0 spec/pdf-my-url/config/initializers/mime_types.rb
  22. +7 −0 spec/pdf-my-url/config/initializers/secret_token.rb
  23. +8 −0 spec/pdf-my-url/config/initializers/session_store.rb
  24. +5 −0 spec/pdf-my-url/config/locales/en.yml
  25. +5 −0 spec/pdf-my-url/config/routes.rb
  26. +15 −0 spec/pdf-my-url/db/schema.rb
  27. +7 −0 spec/pdf-my-url/db/seeds.rb
  28. 0 spec/pdf-my-url/lib/tasks/.gitkeep
  29. 0 spec/pdf-my-url/public/favicon.ico
  30. 0 spec/pdf-my-url/public/javascripts/application.js
  31. 0 spec/pdf-my-url/public/stylesheets/.gitkeep
  32. +6 −0 spec/pdf-my-url/public/stylesheets/style.css
  33. +6 −0 spec/pdf-my-url/script/rails
  34. +22 −0 spec/pdf-my-url/test/functional/main_controller_test.rb
  35. +10 −0 spec/pdf-my-url/test/performance/browsing_test.rb
  36. +9 −0 spec/pdf-my-url/test/test_helper.rb
  37. +4 −0 spec/pdf-my-url/test/unit/helpers/main_helper_test.rb
  38. 0 spec/pdf-my-url/vendor/plugins/.gitkeep
@@ -0,0 +1,4 @@
+.bundle
+db/*.sqlite3
+log/*.log
+tmp/**/*
@@ -0,0 +1,7 @@
+source 'http://rubygems.org'
+
+gem 'rails', '3.0.3'
+
+gem 'sqlite3-ruby', :require => 'sqlite3'
+
+gem 'pdf-my-url'
@@ -0,0 +1,75 @@
+GEM
+ remote: http://rubygems.org/
+ specs:
+ abstract (1.0.0)
+ actionmailer (3.0.3)
+ actionpack (= 3.0.3)
+ mail (~> 2.2.9)
+ actionpack (3.0.3)
+ activemodel (= 3.0.3)
+ activesupport (= 3.0.3)
+ builder (~> 2.1.2)
+ erubis (~> 2.6.6)
+ i18n (~> 0.4)
+ rack (~> 1.2.1)
+ rack-mount (~> 0.6.13)
+ rack-test (~> 0.5.6)
+ tzinfo (~> 0.3.23)
+ activemodel (3.0.3)
+ activesupport (= 3.0.3)
+ builder (~> 2.1.2)
+ i18n (~> 0.4)
+ activerecord (3.0.3)
+ activemodel (= 3.0.3)
+ activesupport (= 3.0.3)
+ arel (~> 2.0.2)
+ tzinfo (~> 0.3.23)
+ activeresource (3.0.3)
+ activemodel (= 3.0.3)
+ activesupport (= 3.0.3)
+ activesupport (3.0.3)
+ arel (2.0.6)
+ builder (2.1.2)
+ erubis (2.6.6)
+ abstract (>= 1.0.0)
+ i18n (0.5.0)
+ mail (2.2.13)
+ activesupport (>= 2.3.6)
+ i18n (>= 0.4.0)
+ mime-types (~> 1.16)
+ treetop (~> 1.4.8)
+ mime-types (1.16)
+ pdf-my-url (1.0.1)
+ polyglot (0.3.1)
+ rack (1.2.1)
+ rack-mount (0.6.13)
+ rack (>= 1.0.0)
+ rack-test (0.5.6)
+ rack (>= 1.0)
+ rails (3.0.3)
+ actionmailer (= 3.0.3)
+ actionpack (= 3.0.3)
+ activerecord (= 3.0.3)
+ activeresource (= 3.0.3)
+ activesupport (= 3.0.3)
+ bundler (~> 1.0)
+ railties (= 3.0.3)
+ railties (3.0.3)
+ actionpack (= 3.0.3)
+ activesupport (= 3.0.3)
+ rake (>= 0.8.7)
+ thor (~> 0.14.4)
+ rake (0.8.7)
+ sqlite3-ruby (1.3.2)
+ thor (0.14.6)
+ treetop (1.4.9)
+ polyglot (>= 0.3.1)
+ tzinfo (0.3.23)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ pdf-my-url
+ rails (= 3.0.3)
+ sqlite3-ruby
@@ -0,0 +1,7 @@
+# Add your own tasks in files placed in lib/tasks ending in .rake,
+# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
+
+require File.expand_path('../config/application', __FILE__)
+require 'rake'
+
+PdfMyUrl::Application.load_tasks
@@ -0,0 +1,3 @@
+class ApplicationController < ActionController::Base
+ protect_from_forgery
+end
@@ -0,0 +1,10 @@
+class MainController < ApplicationController
+
+ # GET '/'
+ def index
+ respond_to do |format|
+ format.html
+ end
+ end
+
+end
@@ -0,0 +1,2 @@
+module ApplicationHelper
+end
@@ -0,0 +1,2 @@
+module MainHelper
+end
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>PDFmyURL</title>
+ <%= stylesheet_link_tag 'style' %>
+ <%= javascript_include_tag 'application' %>
+ <%= csrf_meta_tag %>
+</head>
+<body>
+
+<%= yield %>
+
+</body>
+</html>
@@ -0,0 +1,8 @@
+<div id="link-1"><%= pdf_my_url 'PDF', 'http://www.cbc.ca/' %></div>
+<div id="link-2"><%= pdf_my_url 'PDF', 'http://www.cbc.ca/', :filename => 'CBC.pdf' %></div>
+<div id="link-3"><%= pdf_my_url 'PDF', 'http://www.cbc.ca/', :orientation => :portrait %></div>
+<div id="link-4"><%= pdf_my_url 'PDF', 'http://www.cbc.ca/', :orientation => :landscape %></div>
+<div id="link-5"><%= pdf_my_url 'PDF', 'http://www.cbc.ca/', :page => { :size => 'A4' } %></div>
+<div id="link-6"><%= pdf_my_url 'PDF', 'http://www.cbc.ca/', :page => { :size => 'Letter' } %></div>
+<div id="link-7"><%= pdf_my_url 'PDF', 'http://www.cbc.ca/', :page => { :height => 200, :width => 200 } %></div>
+<div id="link-8"><%= pdf_my_url 'PDF', 'http://www.cbc.ca/', :margin => { :top => 10, :bottom => 10 } %></div>
@@ -0,0 +1,4 @@
+# This file is used by Rack-based servers to start the application.
+
+require ::File.expand_path('../config/environment', __FILE__)
+run PdfMyUrl::Application
@@ -0,0 +1,42 @@
+require File.expand_path('../boot', __FILE__)
+
+require 'rails/all'
+
+# If you have a Gemfile, require the gems listed there, including any gems
+# you've limited to :test, :development, or :production.
+Bundler.require(:default, Rails.env) if defined?(Bundler)
+
+module PdfMyUrl
+ class Application < Rails::Application
+ # Settings in config/environments/* take precedence over those specified here.
+ # Application configuration should go into files in config/initializers
+ # -- all .rb files in that directory are automatically loaded.
+
+ # Custom directories with classes and modules you want to be autoloadable.
+ # config.autoload_paths += %W(#{config.root}/extras)
+
+ # Only load the plugins named here, in the order given (default is alphabetical).
+ # :all can be used as a placeholder for all plugins not explicitly named.
+ # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
+
+ # Activate observers that should always be running.
+ # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
+
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
+ # config.time_zone = 'Central Time (US & Canada)'
+
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
+ # config.i18n.default_locale = :de
+
+ # JavaScript files you want as :defaults (application.js is always included).
+ # config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
+
+ # Configure the default encoding used in templates for Ruby 1.9.
+ config.encoding = "utf-8"
+
+ # Configure sensitive parameters which will be filtered from the log file.
+ config.filter_parameters += [:password]
+ end
+end
@@ -0,0 +1,13 @@
+require 'rubygems'
+
+# Set up gems listed in the Gemfile.
+gemfile = File.expand_path('../../Gemfile', __FILE__)
+begin
+ ENV['BUNDLE_GEMFILE'] = gemfile
+ require 'bundler'
+ Bundler.setup
+rescue Bundler::GemNotFound => e
+ STDERR.puts e.message
+ STDERR.puts "Try running `bundle install`."
+ exit!
+end if File.exist?(gemfile)
@@ -0,0 +1,22 @@
+# SQLite version 3.x
+# gem install sqlite3-ruby (not necessary on OS X Leopard)
+development:
+ adapter: sqlite3
+ database: db/development.sqlite3
+ pool: 5
+ timeout: 5000
+
+# Warning: The database defined as "test" will be erased and
+# re-generated from your development database when you run "rake".
+# Do not set this db to the same as development or production.
+test:
+ adapter: sqlite3
+ database: db/test.sqlite3
+ pool: 5
+ timeout: 5000
+
+production:
+ adapter: sqlite3
+ database: db/production.sqlite3
+ pool: 5
+ timeout: 5000
@@ -0,0 +1,5 @@
+# Load the rails application
+require File.expand_path('../application', __FILE__)
+
+# Initialize the rails application
+PdfMyUrl::Application.initialize!
@@ -0,0 +1,26 @@
+PdfMyUrl::Application.configure do
+ # Settings specified here will take precedence over those in config/application.rb
+
+ # In the development environment your application's code is reloaded on
+ # every request. This slows down response time but is perfect for development
+ # since you don't have to restart the webserver when you make code changes.
+ config.cache_classes = false
+
+ # Log error messages when you accidentally call methods on nil.
+ config.whiny_nils = true
+
+ # Show full error reports and disable caching
+ config.consider_all_requests_local = true
+ config.action_view.debug_rjs = true
+ config.action_controller.perform_caching = false
+
+ # Don't care if the mailer can't send
+ config.action_mailer.raise_delivery_errors = false
+
+ # Print deprecation notices to the Rails logger
+ config.active_support.deprecation = :log
+
+ # Only use best-standards-support built into browsers
+ config.action_dispatch.best_standards_support = :builtin
+end
+
@@ -0,0 +1,49 @@
+PdfMyUrl::Application.configure do
+ # Settings specified here will take precedence over those in config/application.rb
+
+ # The production environment is meant for finished, "live" apps.
+ # Code is not reloaded between requests
+ config.cache_classes = true
+
+ # Full error reports are disabled and caching is turned on
+ config.consider_all_requests_local = false
+ config.action_controller.perform_caching = true
+
+ # Specifies the header that your server uses for sending files
+ config.action_dispatch.x_sendfile_header = "X-Sendfile"
+
+ # For nginx:
+ # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
+
+ # If you have no front-end server that supports something like X-Sendfile,
+ # just comment this out and Rails will serve the files
+
+ # See everything in the log (default is :info)
+ # config.log_level = :debug
+
+ # Use a different logger for distributed setups
+ # config.logger = SyslogLogger.new
+
+ # Use a different cache store in production
+ # config.cache_store = :mem_cache_store
+
+ # Disable Rails's static asset server
+ # In production, Apache or nginx will already do this
+ config.serve_static_assets = false
+
+ # Enable serving of images, stylesheets, and javascripts from an asset server
+ # config.action_controller.asset_host = "http://assets.example.com"
+
+ # Disable delivery errors, bad email addresses will be ignored
+ # config.action_mailer.raise_delivery_errors = false
+
+ # Enable threaded mode
+ # config.threadsafe!
+
+ # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
+ # the I18n.default_locale when a translation can not be found)
+ config.i18n.fallbacks = true
+
+ # Send deprecation notices to registered listeners
+ config.active_support.deprecation = :notify
+end
@@ -0,0 +1,35 @@
+PdfMyUrl::Application.configure do
+ # Settings specified here will take precedence over those in config/application.rb
+
+ # The test environment is used exclusively to run your application's
+ # test suite. You never need to work with it otherwise. Remember that
+ # your test database is "scratch space" for the test suite and is wiped
+ # and recreated between test runs. Don't rely on the data there!
+ config.cache_classes = true
+
+ # Log error messages when you accidentally call methods on nil.
+ config.whiny_nils = true
+
+ # Show full error reports and disable caching
+ config.consider_all_requests_local = true
+ config.action_controller.perform_caching = false
+
+ # Raise exceptions instead of rendering exception templates
+ config.action_dispatch.show_exceptions = false
+
+ # Disable request forgery protection in test environment
+ config.action_controller.allow_forgery_protection = false
+
+ # Tell Action Mailer not to deliver emails to the real world.
+ # The :test delivery method accumulates sent emails in the
+ # ActionMailer::Base.deliveries array.
+ config.action_mailer.delivery_method = :test
+
+ # Use SQL instead of Active Record's schema dumper when creating the test database.
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
+ # like if you have constraints or database-specific column types
+ # config.active_record.schema_format = :sql
+
+ # Print deprecation notices to the stderr
+ config.active_support.deprecation = :stderr
+end
@@ -0,0 +1,7 @@
+# Be sure to restart your server when you modify this file.
+
+# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
+# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
+
+# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
+# Rails.backtrace_cleaner.remove_silencers!
@@ -0,0 +1,10 @@
+# Be sure to restart your server when you modify this file.
+
+# Add new inflection rules using the following format
+# (all these examples are active by default):
+# ActiveSupport::Inflector.inflections do |inflect|
+# inflect.plural /^(ox)$/i, '\1en'
+# inflect.singular /^(ox)en/i, '\1'
+# inflect.irregular 'person', 'people'
+# inflect.uncountable %w( fish sheep )
+# end
@@ -0,0 +1,5 @@
+# Be sure to restart your server when you modify this file.
+
+# Add new mime types for use in respond_to blocks:
+# Mime::Type.register "text/richtext", :rtf
+# Mime::Type.register_alias "text/html", :iphone
@@ -0,0 +1,7 @@
+# Be sure to restart your server when you modify this file.
+
+# Your secret key for verifying the integrity of signed cookies.
+# If you change this key, all old signed cookies will become invalid!
+# Make sure the secret is at least 30 characters and all random,
+# no regular words or you'll be exposed to dictionary attacks.
+PdfMyUrl::Application.config.secret_token = '28db5ce81ba8d3a43f0a997fb9d87876e23c4d5b86a313083feff59461854ed5c914a547480def78a7a98bf17d745b76e82b80b8f8ae7c53d8cecd90add6b202'
@@ -0,0 +1,8 @@
+# Be sure to restart your server when you modify this file.
+
+PdfMyUrl::Application.config.session_store :cookie_store, :key => '_pdf-my-url_session'
+
+# Use the database for sessions instead of the cookie-based default,
+# which shouldn't be used to store highly confidential information
+# (create the session table with "rails generate session_migration")
+# PdfMyUrl::Application.config.session_store :active_record_store
@@ -0,0 +1,5 @@
+# Sample localization file for English. Add more files in this directory for other locales.
+# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
+
+en:
+ hello: "Hello world"
Oops, something went wrong. Retry.

0 comments on commit 56d891b

Please sign in to comment.