aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKir2012-01-26 12:36:32 +0200
committerKir2012-01-26 12:36:32 +0200
commitcf8f7b3ae751d61ac3e74728c006c492acd78de7 (patch)
tree7204a5f198c833937cecd84f84c163c6ecce7457
parentbac1756272bee288c5aa377e9a4692fb9382b10d (diff)
downloadinboxes-cf8f7b3ae751d61ac3e74728c006c492acd78de7.tar.bz2
Added fake_app
-rw-r--r--lib/inboxes.rb3
-rw-r--r--spec/fake_app.rb87
-rw-r--r--spec/spec_helper.rb29
3 files changed, 115 insertions, 4 deletions
diff --git a/lib/inboxes.rb b/lib/inboxes.rb
index 57dc9a0..a8192dc 100644
--- a/lib/inboxes.rb
+++ b/lib/inboxes.rb
@@ -4,9 +4,7 @@ require "inboxes/ability"
require "inboxes/engine"
require "inboxes/active_record_extension"
-
module Inboxes
-
def self.configure(&block)
yield @config ||= Inboxes::Configuration.new
end
@@ -31,5 +29,4 @@ module Inboxes
# adding method inboxes for models
ActiveRecord::Base.extend(Inboxes::ActiveRecordExtension)
-
end
diff --git a/spec/fake_app.rb b/spec/fake_app.rb
new file mode 100644
index 0000000..37df9e2
--- /dev/null
+++ b/spec/fake_app.rb
@@ -0,0 +1,87 @@
+require 'active_record'
+require 'action_controller/railtie'
+require 'action_view/railtie'
+
+# database
+ActiveRecord::Base.configurations = {'test' => {:adapter => 'sqlite3', :database => ':memory:'}}
+ActiveRecord::Base.establish_connection('test')
+
+# config
+app = Class.new(Rails::Application)
+app.config.secret_token = "3b7cd727ee24e8444053437c36cc66c4"
+app.config.session_store :cookie_store, :key => "_myapp_session"
+app.config.active_support.deprecation = :log
+app.initialize!
+
+# routes
+app.routes.draw do
+ devise_for :users
+end
+
+# models
+class User < ActiveRecord::Base
+ devise :database_authenticatable, :registerable,
+ :recoverable, :rememberable, :trackable, :validatable
+ attr_accessible :email, :password, :password_confirmation, :remember_me, :name
+ validates :name, :presence => true, :uniqueness => true
+ has_inboxes
+end
+
+# controllers
+class ApplicationController < ActionController::Base
+ before_filter :assign_unread_discussions
+
+ private
+
+ def assign_unread_discussions
+ @unread_discussions_count = Discussion.unread_for(current_user).count if user_signed_in?
+ end
+end
+
+# helpers
+Object.const_set(:ApplicationHelper, Module.new)
+
+#migrations
+ActiveRecord::Base.silence do
+ ActiveRecord::Migration.verbose = false
+ ActiveRecord::Schema.define :version => 0 do
+ create_table "users", :force => true do |t|
+ t.string "email", :default => "", :null => false
+ t.string "encrypted_password", :limit => 128, :default => "", :null => false
+ t.string "reset_password_token"
+ t.datetime "reset_password_sent_at"
+ t.datetime "remember_created_at"
+ t.integer "sign_in_count", :default => 0
+ t.datetime "current_sign_in_at"
+ t.datetime "last_sign_in_at"
+ t.string "current_sign_in_ip"
+ t.string "last_sign_in_ip"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ t.string "name"
+ end
+
+ create_table "discussions", :force => true do |t|
+ t.integer "user_id"
+ t.integer "messages_count", :default => 0
+ t.boolean "is_private", :default => true
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
+ create_table "messages", :force => true do |t|
+ t.integer "user_id"
+ t.integer "discussion_id"
+ t.text "body"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
+ create_table "speakers", :force => true do |t|
+ t.integer "user_id"
+ t.integer "discussion_id"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+ end
+end \ No newline at end of file
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 174ab57..a0e9366 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,2 +1,29 @@
-require 'inboxes'
+$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
+$LOAD_PATH.unshift(File.dirname(__FILE__))
+require 'rails'
+# require 'inboxes'
+require 'devise'
+# require 'database_cleaner'
+# Ensure we use 'syck' instead of 'psych' in 1.9.2
+# RubyGems >= 1.5.0 uses 'psych' on 1.9.2, but
+# Psych does not yet support YAML 1.1 merge keys.
+# Merge keys is often used in mongoid.yml
+# See: http://redmine.ruby-lang.org/issues/show/4300
+if RUBY_VERSION >= '1.9.2'
+ YAML::ENGINE.yamler = 'syck'
+end
+# require 'fake_gem'
+require 'fake_app'
+require 'rspec/rails'
+# Requires supporting files with custom matchers and macros, etc,
+# in ./support/ and its subdirectories.
+Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
+
+RSpec.configure do |config|
+ config.mock_with :rr
+ config.before :all do
+# ActiveRecord::Base.connection.execute 'CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255))' unless ActiveRecord::Base.connection.table_exists? 'users'
+ # CreateAllTables.up unless ActiveRecord::Base.connection.table_exists? 'users'
+ end
+end \ No newline at end of file