Skip to content

Instantly share code, notes, and snippets.

@mattrw89
Created June 23, 2011 15:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mattrw89/1042734 to your computer and use it in GitHub Desktop.
Save mattrw89/1042734 to your computer and use it in GitHub Desktop.
class ApiController < ApplicationController
require 'api_errors'
include ApiErrors
#################################################################################
#####CODE FROM http://www.starkiller.net/2011/03/17/versioned-api-1/ ###########
#################################################################################
@@versions = {}
@@registered_methods = {}
class << self
alias_method :original_inherited, :inherited
def inherited(subclass)
original_inherited(subclass)
load File.join("#{Rails.root}", "app", "controllers",
"api", "#{extract_filename(subclass)}")
subclass.action_methods.each do |method|
regex = Regexp.new("^(.*)_(\\d+)$")
if match = regex.match(method)
key = "#{subclass.to_s}##{match[1]}"
@@versions[match[2].to_i] = true
@@registered_methods[key] ||= {}
@@registered_methods[key][match[2].to_i] = true
subclass.instance_eval do
define_method(match[1].to_sym) {}
end
end
end
subclass.reset_action_methods
end
def extract_filename(subclass)
classname = subclass.to_s.split('::')[1]
parts = classname.underscore.split('_')
"#{parts.reject{|c| c == 'controller'}.join('_')}_controller.rb"
end
def reset_action_methods
@action_methods = nil
action_methods
end
end
def versions
render :json => @@versions.keys.sort.reverse and return
end
def no_api_method
render :json => {"error" => "The requested method does not exist or is not\
enabled for the requested API version (v#{params[:version]})"},
:status => 404 and return
end
private
def protected_actions
['versions','no_api_method']
end
alias_method :original_process_action, :process_action
def process_action(method_name, *args)
method = "no_api_method"
if protected_actions.include? method_name
method = method_name
else
if params[:version]
params[:version] = params[:version][1,params[:version].length - 1].to_i
else
params[:version] = @@versions.keys.max
end
method = find_method(method_name, params[:version])
end
original_process_action(method, *args)
end
def find_method(method_name, version)
key = "#{self.class.to_s}##{method_name}"
versions = @@registered_methods[key].keys.sort
final_method = 'no_api_method'
versions.reverse.each do |v|
if v <= version
final_method = "#{method_name}_#{v}"
break
end
end
final_method
end
end
require 'test_helper'
class ApiFlowsTest < ActionDispatch::IntegrationTest
context "a client" do
setup do
@user = Factory.create(:user_with_auxs)
@user2 = Factory.create(:user2_with_auxs)
@user2.person.update_attributes(:firstName => "Test", :lastName => "Useroo")
@user2.person.organization_memberships.destroy_all
@user2.person.organization_memberships.create(:organization_id => @user.person.primary_organization.id, :person_id => @user2.person.id, :primary => 1, :role => "leader", :followup_status => "contacted")
ContactAssignment.create(:assigned_to_id => @user.person.id, :person_id => @user2.person.id, :organization_id => @user.person.organizations.first.id)
ContactAssignment.create(:assigned_to_id => @user2.person.id, :person_id => @user.person.id, :organization_id => @user.person.organizations.first.id)
@access_token = Factory.create(:access_token, :identity => @user.id)
@access_token2 = Factory.create(:access_token, :identity => @user2.id, :code => "aoeuaocnpganoeuhnh234hnaeu")
end
should "be able to request person information" do
path = "/api/people/#{@user.person.id}"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
person_full_test(@json[0], @user, @user2)
end
should "be able to request person information with fields" do
path = "/api/people/#{@user.person.id}"
get path, {'access_token' => @access_token.code, 'fields' => "first_name,last_name,name,id,birthday,fb_id,picture,gender,education,interests,id,locale,location,assignment,request_org_id,organization_membership,status"}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
person_full_test(@json[0], @user, @user2)
end
should "be able to get person friends" do
path = "/api/friends/#{@user.person.id}"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
person_mini_test(@json[0]['person'],@user)
assert_equal(@json[0]['friends'].length, 3)
friend_test(@json[0]['friends'][0], @user.person.friends.first)
end
context "with version 1 specified" do
should "be able to request person information" do
path = "/api/v1/people/#{@user.person.id}"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
person_full_test(@json[0], @user, @user2)
end
should "be able to request person information with fields" do
path = "/api/v1/people/#{@user.person.id}"
get path, {'access_token' => @access_token.code, 'fields' => "first_name,last_name,name,id,birthday,fb_id,picture,gender,education,interests,id,locale,location,assignment,request_org_id,organization_membership,status"}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
person_full_test(@json[0], @user, @user2)
end
should "be able to get person friends" do
path = "/api/v1/friends/#{@user.person.id}"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
person_mini_test(@json[0]['person'],@user)
assert_equal(@json[0]['friends'].length, 3)
friend_test(@json[0]['friends'][0], @user.person.friends.first)
end
end
end
context "a client" do
setup do
@user = Factory.create(:user_with_auxs)
@user2 = Factory.create(:user2_with_auxs)
@user2.person.update_attributes(:firstName => "Test", :lastName => "Useroo")
@user2.person.organization_memberships.destroy_all
@user2.person.organization_memberships.create(:organization_id => @user.person.primary_organization.id, :person_id => @user2.person.id, :primary => 1, :role => "leader", :followup_status => "contacted")
ContactAssignment.create(:assigned_to_id => @user.person.id, :person_id => @user2.person.id, :organization_id => @user.person.organizations.first.id)
ContactAssignment.create(:assigned_to_id => @user2.person.id, :person_id => @user.person.id, :organization_id => @user.person.organizations.first.id)
@access_token = Factory.create(:access_token, :identity => @user.id)
@access_token2 = Factory.create(:access_token, :identity => @user2.id, :code => "aoeuaocnpganoeuhnh234hnaeu")
@organization = Factory(:organization)
@keyword = Factory(:approved_keyword, :organization => @user.person.organizations.first)
@firstNameQ = Factory(:element)
@keyword.question_page.elements << @firstNameQ
@questions = @keyword.question_sheet.questions
@answer_sheet = Factory(:answer_sheet, :question_sheet => @keyword.question_sheet, :person => @user.person)
@answer_sheet2 = Factory(:answer_sheet, :question_sheet => @keyword.question_sheet, :person => @user2.person)
@answer_to_choice = Factory(:answer_1, :answer_sheet => @answer_sheet, :question => @questions.first)
@answer_to_choice2 = Factory(:answer_1, :answer_sheet => @answer_sheet2, :question => @questions.first)
end
should "be able to view their contacts" do
path = "/api/contacts/"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
person_basic_test(@json[0]['person'],@user,@user2)
person_basic_test(@json[1]['person'],@user2,@user)
end
should "be able to view their contacts filtered by gender=male" do
path = "/api/contacts.json?filters=gender&values=male"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json.length,2)
@json.each do |person|
assert_equal(person['person']['gender'],'male')
assert_not_equal(person['person']['gender'],'female')
end
end
should "be able to view their contacts filtered by gender=female" do
path = "/api/contacts.json?filters=gender&values=female"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json.length,0)
@user.person.update_attributes(:gender => 'female')
@user2.person.update_attributes(:gender => 'female')
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json.length,2)
@json.each do |person|
assert_equal(person['person']['gender'],'female')
assert_not_equal(person['person']['gender'],'male')
end
end
should "be able to view their contacts with start and limit" do
path = "/api/contacts.json?limit=1&start=0"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json.length, 1)
person_basic_test(@json[0]['person'],@user,@user2)
path = "/api/contacts.json?limit=1&start=1"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json.length, 1)
person_basic_test(@json[0]['person'],@user2,@user)
#raise an error when no limit with start
path = "/api/contacts.json?start=1"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json['error']['code'],"29")
path = "/api/contacts.json?limit=1"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json.length, 1)
end
should "be able to view their contacts filtered by status=contacted" do
path = "/api/contacts.json?filters=status&values=contacted"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json.length,1)
person_basic_test(@json[0]['person'],@user2,@user)
@user.person.organization_memberships.where(:organization_id => @user.person.primary_organization.id).first.update_attributes(:followup_status => 'attempted_contact')
@user2.person.organization_memberships.where(:organization_id => @user.person.primary_organization.id).first.update_attributes(:followup_status => 'attempted_contact')
path = "/api/contacts.json?filters=status&values=contacted"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json.length,0)
path = "/api/contacts.json?filters=status&values=attempted_contact"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json.length,2)
path = "/api/contacts.json?filters=status,gender&values=attempted_contact,female"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json.length,0)
end
should "be able to view their contacts with sorting" do
path = "/api/contacts.json?sort=time&direction=desc"
@user2.person.answer_sheets.first.update_attributes(:created_at => 2.days.ago)
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json.length, 2)
person_mini_test(@json[0]['person'],@user)
path = "/api/contacts.json?sort=time&direction=asc"
@user2.person.answer_sheets.first.update_attributes(:created_at => 2.days.ago)
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json.length, 2)
person_mini_test(@json[0]['person'],@user2)
end
should "be able to view their contacts by searching" do
path = "/api/contacts/search?term=Useroo"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
person_basic_test(@json[0]['person'], @user2, @user)
end
should "be able to view a specific contact" do
path = "/api/contacts/#{@user.person.id}"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
keyword_test(@json['keywords'], @keyword)
question_test(@json['questions'], @questions)
person_full_test(@json['people'][0]['person'], @user, @user2)
form_test(@json['people'][0]['form'], @questions, @answer_sheet)
end
should "be able to view a specific contact with a specific version" do
path = "/api/v1/contacts/#{@user.person.id}"
get path, {'access_token' => @access_token.code}
assert_response :success, @response.body
@json = ActiveSupport::JSON.decode(@response.body)
keyword_test(@json['keywords'], @keyword)
question_test(@json['questions'], @questions)
person_full_test(@json['people'][0]['person'], @user, @user2)
form_test(@json['people'][0]['form'], @questions, @answer_sheet)
end
should "be able to add a comment to a contact" do
path = "/api/followup_comments/"
assert_equal(FollowupComment.all.count, 0)
assert_equal(Rejoicable.all.count, 0)
json = ActiveSupport::JSON.encode({:followup_comment => {:organization_id=> @user.person.primary_organization.id, :contact_id=>@user2.person.id, :commenter_id=>@user.person.id, :status=>"do_not_contact", :comment=>"Testing the comment system."}, :rejoicables => ["spiritual_conversation", "prayed_to_receive", "gospel_presentation"]})
post path, {'access_token' => @access_token.code, 'json' => json }
File.open('/users/Doulos/Desktop/testmytest.log', 'a') do |f2|
f2.puts "TESTING: \n"
f2.puts "#{@response.body}\n\n\n"
end
assert_equal(FollowupComment.all.count, 1)
assert_equal(Rejoicable.all.count,3)
assert_equal(FollowupComment.all.first.comment, "Testing the comment system.")
end
should "be able to get the followup comments" do
#create a few test comments
path = "/api/followup_comments/"
json = ActiveSupport::JSON.encode({:followup_comment => {:organization_id=> @user.person.primary_organization.id, :contact_id=>@user2.person.id, :commenter_id=>@user.person.id, :status=>"do_not_contact", :comment=>"Testing the comment system."}, :rejoicables => ["spiritual_conversation", "prayed_to_receive", "gospel_presentation"]})
post path, {'access_token' => @access_token.code, 'json' => json }
post path, {'access_token' => @access_token.code, 'json' => json }
path = "/api/followup_comments/#{@user2.person.id}"
get path, {'access_token' => @access_token.code}
@json = ActiveSupport::JSON.decode(@response.body)
f1 = FollowupComment.first
f2 = FollowupComment.last
followup_comment_test(@json[0]['followup_comment'], f1, @user2.person, @user.person)
end
should "be able to create a contact assignment" do
path = "/api/contact_assignments/"
ContactAssignment.destroy_all
post path, {'access_token' => @access_token.code, :org_id => @user.person.primary_organization.id, :assign_to => @user2.person.id, :ids => @user2.person.id}
assert_equal(@user2.person.contact_assignments.count, 1)
end
should "fail to create a contact assignment" do
path = "/api/contact_assignments/"
ContactAssignment.destroy_all
post path, {'access_token' => @access_token.code, :org_id => @user.person.primary_organization.id, :assign_to => "23423523a", :ids => @user2.person.id}
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json['error']['code'], '27')
ContactAssignment.destroy_all
post path, {'access_token' => @access_token.code, :org_id => '234abc', :assign_to => "23423523", :ids => @user2.person.id}
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json['error']['code'], '30')
end
should "be able to delete a contact assignment" do
ContactAssignment.destroy_all
y = ContactAssignment.create(:organization_id => @user.person.primary_organization.id, :person_id => @user.person.id, :assigned_to_id => @user.person.id)
assert_equal(@user.person.contact_assignments.count, 1)
path = "/api/contact_assignments/#{@user.person.id}"
delete path, {'access_token' => @access_token.code}
assert_equal(@user.person.contact_assignments.count, 0)
end
end
context "a user" do
setup do
@user = Factory.create(:user_with_auxs)
@user2 = Factory.create(:user2_with_auxs)
@user2.person.update_attributes(:firstName => "Test", :lastName => "Useroo")
@user2.person.organization_memberships.destroy_all
@user2.person.organization_memberships.create(:organization_id => @user.person.primary_organization.id, :person_id => @user2.person.id, :primary => 1, :role => "leader", :followup_status => "contacted")
ContactAssignment.create(:assigned_to_id => @user.person.id, :person_id => @user2.person.id, :organization_id => @user.person.organizations.first.id)
ContactAssignment.create(:assigned_to_id => @user2.person.id, :person_id => @user.person.id, :organization_id => @user.person.organizations.first.id)
@access_token = Factory.create(:access_token, :identity => @user.id)
@access_token2 = Factory.create(:access_token, :identity => @user2.id, :code => "aoeuaocnpganoeuhnh234hnaeu")
end
should "be denied access to resources when they have the wrong scope" do
path = "/api/contact_assignments/#{@user.person.id}"
@access_token.update_attributes(:scope => "contacts userinfo followup_comments")
delete path, {'access_token' => @access_token.code}
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json['error']['code'],"55")
path = "/api/friends/#{@user.person.id}"
@access_token.update_attributes(:scope => "contacts contact_assignment followup_comments")
get path, {'access_token' => @access_token.code}
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json['error']['code'],"55")
path = "/api/people/#{@user.person.id}"
get path, {'access_token' => @access_token.code}
@json = ActiveSupport::JSON.decode(@response.body)
assert_equal(@json['error']['code'],"55")
end
end
######################################
########## HELPER METHODS ############
######################################
def followup_comment_test(json_comment, comment, contact, commenter)
assert_equal(json_comment['comment']['id'], comment.id)
assert_equal(json_comment['comment']['contact_id'], contact.id)
assert_equal(json_comment['comment']['commenter']['id'], commenter.id)
assert_equal(json_comment['comment']['commenter']['picture'], commenter.picture)
assert_equal(json_comment['comment']['commenter']['name'], commenter.to_s)
assert_equal(json_comment['comment']['comment'], comment.comment)
assert_equal(json_comment['comment']['status'], comment.status)
assert_equal(json_comment['comment']['organization_id'], contact.primary_organization.id)
rejoicables_test(json_comment['rejoicables'], comment.rejoicables)
end
def rejoicables_test(json_rejoicables, rejoicables)
json_rejoicables.each_with_index do |r,i|
assert_equal(r['id'], rejoicables[i].id)
assert_equal(r['what'], rejoicables[i].what)
end
end
def friend_test(json_friend, friend)
assert_equal(json_friend['name'],friend.name)
assert_equal(json_friend['uid'], friend.uid)
assert_equal(json_friend['provider'], friend.provider)
end
def form_test(json_form, questions, answer_sheet)
json_form.each_with_index do |q,i|
assert_equal(q['a'],questions[i].display_response(answer_sheet))
end
end
def keyword_test(json_keywords,keywords)
unless keywords.is_a? Array
temp = keywords
keywords = [temp]
end
json_keywords.each_with_index do |keyword,i|
assert_equal(keyword['name'],'approved')
assert_equal(keyword['keyword_id'],keywords[i].id)
assert_equal(keyword['questions'], keywords[i].question_sheets.first.questions.collect(&:id))
end
end
def question_test(json_questions,questions)
json_questions.each_with_index do |question,i|
assert_equal(question['id'],questions[i].id)
assert_equal(question['kind'],questions[i].kind)
assert_equal(question['label'],questions[i].label)
assert_equal(question['style'],questions[i].style)
assert_equal(question['required'],questions[i].required)
end
end
def person_mini_test(json_person,user)
assert_equal(json_person['name'], user.person.to_s)
assert_equal(json_person['id'], user.person.id)
end
def person_basic_test(json_person,user,user2)
person_mini_test(json_person,user)
assert_equal(json_person['picture'], user.person.picture)
assert_equal(json_person['fb_id'], user.person.fb_uid.to_s)
assert_equal(json_person['gender'], user.person.gender)
assert_equal(json_person['status'], user.person.organization_memberships.first.followup_status)
person_mini_test(json_person['assignment']['assigned_to_person'][0],user)
person_mini_test(json_person['assignment']['person_assigned_to'][0],user2)
assert_equal(json_person['request_org_id'], user.person.primary_organization.id)
end
def person_full_test(json_person,user,user2)
person_basic_test(json_person,user,user2)
assert_equal(json_person['first_name'], user.person.firstName)
assert_equal(json_person['last_name'], user.person.lastName)
assert_equal(json_person['locale'], user.locale.nil? ? "" : user.locale)
assert_equal(json_person['birthday'], user.person.birth_date.to_s)
assert_equal(json_person['education'][0]['school']['name'], "Test High School")
assert_equal(json_person['education'][1]['school']['name'], "Test University")
assert_equal(json_person['education'][2]['school']['name'], "Test University 2")
assert_equal(json_person['interests'][1]['name'], "Test Interest 2")
assert_equal(json_person['organization_membership'][0]['org_id'], user.person.primary_organization.id)
assert_equal(json_person['organization_membership'][0]['role'], user.person.organization_memberships.first.role)
assert_equal(json_person['organization_membership'][0]['primary'].downcase, 'true')
end
end
# File.open('/users/Doulos/Desktop/testmytest.log', 'a') do |f2|
# f2.puts "should be able to view a specific contact\n"
# f2.puts "#{JSON::pretty_generate(@json)}\n\n\n"
# end
request contact information associated with person
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Action Controller: Exception caught</title>
<style>
body { background-color: #fff; color: #333; }
body, p, ol, ul, td {
font-family: helvetica, verdana, arial, sans-serif;
font-size: 13px;
line-height: 18px;
}
pre {
background-color: #eee;
padding: 10px;
font-size: 11px;
}
a { color: #000; }
a:visited { color: #666; }
a:hover { color: #fff; background-color:#000; }
</style>
</head>
<body>
<h1>
LoadError
in Api::ContactsController#show
</h1>
<pre>Expected /Users/doulos/Code/missionhub/app/helpers/api_helper.rb to define ApiHelper</pre>
<p><code>Rails.root: /Users/doulos/Code/missionhub</code></p>
<div id="traces">
<a href="#" onclick="document.getElementById('Framework-Trace').style.display='none';document.getElementById('Full-Trace').style.display='none';document.getElementById('Application-Trace').style.display='block';; return false;">Application Trace</a> |
<a href="#" onclick="document.getElementById('Application-Trace').style.display='none';document.getElementById('Full-Trace').style.display='none';document.getElementById('Framework-Trace').style.display='block';; return false;">Framework Trace</a> |
<a href="#" onclick="document.getElementById('Application-Trace').style.display='none';document.getElementById('Framework-Trace').style.display='none';document.getElementById('Full-Trace').style.display='block';; return false;">Full Trace</a>
<div id="Application-Trace" style="display: block;">
<pre><code>activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:490:in `load_missing_constant'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:181:in `block in const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `each'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:501:in `load_missing_constant'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:181:in `block in const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `each'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:501:in `load_missing_constant'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:181:in `block in const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `each'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
app/controllers/api/contacts_controller.rb:3:in `&lt;class:ContactsController&gt;'
app/controllers/api/contacts_controller.rb:1:in `&lt;top (required)&gt;'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:233:in `load'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:233:in `block in load'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:225:in `load_dependency'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:233:in `load'
app/controllers/api_controller.rb:16:in `inherited'
app/controllers/api/contacts_controller.rb:1:in `&lt;top (required)&gt;'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:237:in `require'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:237:in `block in require'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:225:in `load_dependency'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:237:in `require'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:344:in `require_or_load'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:489:in `load_missing_constant'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:181:in `block in const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `each'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
activesupport (3.1.0.rc3) lib/active_support/inflector/methods.rb:124:in `block in constantize'
activesupport (3.1.0.rc3) lib/active_support/inflector/methods.rb:123:in `each'
activesupport (3.1.0.rc3) lib/active_support/inflector/methods.rb:123:in `constantize'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:527:in `block in initialize'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:549:in `yield'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:549:in `default'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:549:in `[]'
actionpack (3.1.0.rc3) lib/action_dispatch/routing/route_set.rb:61:in `controller_reference'
actionpack (3.1.0.rc3) lib/action_dispatch/routing/route_set.rb:46:in `controller'
actionpack (3.1.0.rc3) lib/action_dispatch/routing/route_set.rb:25:in `call'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:152:in `block in call'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:93:in `block in recognize'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:166:in `optimized_each'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:92:in `recognize'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:141:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/routing/route_set.rb:531:in `call'
oa-core (0.2.6) lib/omniauth/strategy.rb:44:in `call!'
oa-core (0.2.6) lib/omniauth/strategy.rb:30:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rack-oauth2-server-945bebdc1881/lib/rack/oauth2/server.rb:219:in `call'
hoptoad_notifier (2.4.11) lib/hoptoad_notifier/rack.rb:27:in `call'
client_side_validations (3.1.0) lib/client_side_validations/middleware.rb:18:in `call'
warden (1.0.4) lib/warden/manager.rb:35:in `block in call'
warden (1.0.4) lib/warden/manager.rb:34:in `catch'
warden (1.0.4) lib/warden/manager.rb:34:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
rack (1.3.0) lib/rack/etag.rb:23:in `call'
rack (1.3.0) lib/rack/conditionalget.rb:25:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/head.rb:14:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/flash.rb:243:in `call'
rack (1.3.0) lib/rack/session/abstract/id.rb:195:in `context'
rack (1.3.0) lib/rack/session/abstract/id.rb:190:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/cookies.rb:321:in `call'
activerecord (3.1.0.rc3) lib/active_record/query_cache.rb:54:in `call'
activerecord (3.1.0.rc3) lib/active_record/connection_adapters/abstract/connection_pool.rb:448:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (3.1.0.rc3) lib/active_support/callbacks.rb:392:in `_run_call_callbacks'
activesupport (3.1.0.rc3) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/callbacks.rb:28:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/reloader.rb:68:in `call'
rack (1.3.0) lib/rack/sendfile.rb:102:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'
railties (3.1.0.rc3) lib/rails/rack/logger.rb:13:in `call'
rack (1.3.0) lib/rack/methodoverride.rb:24:in `call'
rack (1.3.0) lib/rack/runtime.rb:17:in `call'
activesupport (3.1.0.rc3) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.3.0) lib/rack/lock.rb:34:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/static.rb:53:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/static.rb:53:in `call'
hoptoad_notifier (2.4.11) lib/hoptoad_notifier/user_informer.rb:12:in `call'
railties (3.1.0.rc3) lib/rails/engine.rb:438:in `call'
rack-test (0.6.0) lib/rack/mock_session.rb:30:in `request'
rack-test (0.6.0) lib/rack/test.rb:218:in `process_request'
rack-test (0.6.0) lib/rack/test.rb:114:in `request'
actionpack (3.1.0.rc3) lib/action_dispatch/testing/integration.rb:292:in `process'
actionpack (3.1.0.rc3) lib/action_dispatch/testing/integration.rb:33:in `get'
actionpack (3.1.0.rc3) lib/action_dispatch/testing/integration.rb:325:in `block (2 levels) in &lt;module:Runner&gt;'
test/performance/browsing_test.rb:32:in `test_request_contact_information_associated_with_a_person'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:65:in `block in run_test'
activesupport (3.1.0.rc3) lib/active_support/testing/performance/ruby.rb:83:in `profile'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:65:in `run_test'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:146:in `run_test'
activesupport (3.1.0.rc3) lib/active_support/testing/performance/ruby.rb:37:in `block in run'
activesupport (3.1.0.rc3) lib/active_support/testing/performance/ruby.rb:37:in `times'
activesupport (3.1.0.rc3) lib/active_support/testing/performance/ruby.rb:37:in `run'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:140:in `run_profile'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:52:in `block in run'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:50:in `each'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:50:in `run'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:656:in `block (2 levels) in run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:650:in `each'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:650:in `block in run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:649:in `each'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:649:in `run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:609:in `run'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:508:in `block in autorun'</code></pre>
</div>
<div id="Framework-Trace" style="display: none;">
<pre><code>activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:490:in `load_missing_constant'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:181:in `block in const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `each'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:501:in `load_missing_constant'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:181:in `block in const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `each'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:501:in `load_missing_constant'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:181:in `block in const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `each'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
app/controllers/api/contacts_controller.rb:3:in `&lt;class:ContactsController&gt;'
app/controllers/api/contacts_controller.rb:1:in `&lt;top (required)&gt;'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:233:in `load'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:233:in `block in load'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:225:in `load_dependency'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:233:in `load'
app/controllers/api_controller.rb:16:in `inherited'
app/controllers/api/contacts_controller.rb:1:in `&lt;top (required)&gt;'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:237:in `require'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:237:in `block in require'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:225:in `load_dependency'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:237:in `require'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:344:in `require_or_load'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:489:in `load_missing_constant'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:181:in `block in const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `each'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
activesupport (3.1.0.rc3) lib/active_support/inflector/methods.rb:124:in `block in constantize'
activesupport (3.1.0.rc3) lib/active_support/inflector/methods.rb:123:in `each'
activesupport (3.1.0.rc3) lib/active_support/inflector/methods.rb:123:in `constantize'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:527:in `block in initialize'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:549:in `yield'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:549:in `default'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:549:in `[]'
actionpack (3.1.0.rc3) lib/action_dispatch/routing/route_set.rb:61:in `controller_reference'
actionpack (3.1.0.rc3) lib/action_dispatch/routing/route_set.rb:46:in `controller'
actionpack (3.1.0.rc3) lib/action_dispatch/routing/route_set.rb:25:in `call'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:152:in `block in call'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:93:in `block in recognize'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:166:in `optimized_each'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:92:in `recognize'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:141:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/routing/route_set.rb:531:in `call'
oa-core (0.2.6) lib/omniauth/strategy.rb:44:in `call!'
oa-core (0.2.6) lib/omniauth/strategy.rb:30:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rack-oauth2-server-945bebdc1881/lib/rack/oauth2/server.rb:219:in `call'
hoptoad_notifier (2.4.11) lib/hoptoad_notifier/rack.rb:27:in `call'
client_side_validations (3.1.0) lib/client_side_validations/middleware.rb:18:in `call'
warden (1.0.4) lib/warden/manager.rb:35:in `block in call'
warden (1.0.4) lib/warden/manager.rb:34:in `catch'
warden (1.0.4) lib/warden/manager.rb:34:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
rack (1.3.0) lib/rack/etag.rb:23:in `call'
rack (1.3.0) lib/rack/conditionalget.rb:25:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/head.rb:14:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/flash.rb:243:in `call'
rack (1.3.0) lib/rack/session/abstract/id.rb:195:in `context'
rack (1.3.0) lib/rack/session/abstract/id.rb:190:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/cookies.rb:321:in `call'
activerecord (3.1.0.rc3) lib/active_record/query_cache.rb:54:in `call'
activerecord (3.1.0.rc3) lib/active_record/connection_adapters/abstract/connection_pool.rb:448:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (3.1.0.rc3) lib/active_support/callbacks.rb:392:in `_run_call_callbacks'
activesupport (3.1.0.rc3) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/callbacks.rb:28:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/reloader.rb:68:in `call'
rack (1.3.0) lib/rack/sendfile.rb:102:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'
railties (3.1.0.rc3) lib/rails/rack/logger.rb:13:in `call'
rack (1.3.0) lib/rack/methodoverride.rb:24:in `call'
rack (1.3.0) lib/rack/runtime.rb:17:in `call'
activesupport (3.1.0.rc3) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.3.0) lib/rack/lock.rb:34:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/static.rb:53:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/static.rb:53:in `call'
hoptoad_notifier (2.4.11) lib/hoptoad_notifier/user_informer.rb:12:in `call'
railties (3.1.0.rc3) lib/rails/engine.rb:438:in `call'
rack-test (0.6.0) lib/rack/mock_session.rb:30:in `request'
rack-test (0.6.0) lib/rack/test.rb:218:in `process_request'
rack-test (0.6.0) lib/rack/test.rb:114:in `request'
actionpack (3.1.0.rc3) lib/action_dispatch/testing/integration.rb:292:in `process'
actionpack (3.1.0.rc3) lib/action_dispatch/testing/integration.rb:33:in `get'
actionpack (3.1.0.rc3) lib/action_dispatch/testing/integration.rb:325:in `block (2 levels) in &lt;module:Runner&gt;'
test/performance/browsing_test.rb:32:in `test_request_contact_information_associated_with_a_person'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:65:in `block in run_test'
activesupport (3.1.0.rc3) lib/active_support/testing/performance/ruby.rb:83:in `profile'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:65:in `run_test'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:146:in `run_test'
activesupport (3.1.0.rc3) lib/active_support/testing/performance/ruby.rb:37:in `block in run'
activesupport (3.1.0.rc3) lib/active_support/testing/performance/ruby.rb:37:in `times'
activesupport (3.1.0.rc3) lib/active_support/testing/performance/ruby.rb:37:in `run'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:140:in `run_profile'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:52:in `block in run'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:50:in `each'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:50:in `run'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:656:in `block (2 levels) in run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:650:in `each'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:650:in `block in run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:649:in `each'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:649:in `run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:609:in `run'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:508:in `block in autorun'</code></pre>
</div>
<div id="Full-Trace" style="display: none;">
<pre><code>activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:490:in `load_missing_constant'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:181:in `block in const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `each'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:501:in `load_missing_constant'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:181:in `block in const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `each'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:501:in `load_missing_constant'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:181:in `block in const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `each'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
app/controllers/api/contacts_controller.rb:3:in `&lt;class:ContactsController&gt;'
app/controllers/api/contacts_controller.rb:1:in `&lt;top (required)&gt;'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:233:in `load'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:233:in `block in load'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:225:in `load_dependency'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:233:in `load'
app/controllers/api_controller.rb:16:in `inherited'
app/controllers/api/contacts_controller.rb:1:in `&lt;top (required)&gt;'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:237:in `require'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:237:in `block in require'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:225:in `load_dependency'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:237:in `require'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:344:in `require_or_load'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:489:in `load_missing_constant'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:181:in `block in const_missing'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `each'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
activesupport (3.1.0.rc3) lib/active_support/inflector/methods.rb:124:in `block in constantize'
activesupport (3.1.0.rc3) lib/active_support/inflector/methods.rb:123:in `each'
activesupport (3.1.0.rc3) lib/active_support/inflector/methods.rb:123:in `constantize'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:527:in `block in initialize'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:549:in `yield'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:549:in `default'
activesupport (3.1.0.rc3) lib/active_support/dependencies.rb:549:in `[]'
actionpack (3.1.0.rc3) lib/action_dispatch/routing/route_set.rb:61:in `controller_reference'
actionpack (3.1.0.rc3) lib/action_dispatch/routing/route_set.rb:46:in `controller'
actionpack (3.1.0.rc3) lib/action_dispatch/routing/route_set.rb:25:in `call'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:152:in `block in call'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:93:in `block in recognize'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:166:in `optimized_each'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:92:in `recognize'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:141:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/routing/route_set.rb:531:in `call'
oa-core (0.2.6) lib/omniauth/strategy.rb:44:in `call!'
oa-core (0.2.6) lib/omniauth/strategy.rb:30:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rack-oauth2-server-945bebdc1881/lib/rack/oauth2/server.rb:219:in `call'
hoptoad_notifier (2.4.11) lib/hoptoad_notifier/rack.rb:27:in `call'
client_side_validations (3.1.0) lib/client_side_validations/middleware.rb:18:in `call'
warden (1.0.4) lib/warden/manager.rb:35:in `block in call'
warden (1.0.4) lib/warden/manager.rb:34:in `catch'
warden (1.0.4) lib/warden/manager.rb:34:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
rack (1.3.0) lib/rack/etag.rb:23:in `call'
rack (1.3.0) lib/rack/conditionalget.rb:25:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/head.rb:14:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/flash.rb:243:in `call'
rack (1.3.0) lib/rack/session/abstract/id.rb:195:in `context'
rack (1.3.0) lib/rack/session/abstract/id.rb:190:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/cookies.rb:321:in `call'
activerecord (3.1.0.rc3) lib/active_record/query_cache.rb:54:in `call'
activerecord (3.1.0.rc3) lib/active_record/connection_adapters/abstract/connection_pool.rb:448:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (3.1.0.rc3) lib/active_support/callbacks.rb:392:in `_run_call_callbacks'
activesupport (3.1.0.rc3) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/callbacks.rb:28:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/reloader.rb:68:in `call'
rack (1.3.0) lib/rack/sendfile.rb:102:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'
railties (3.1.0.rc3) lib/rails/rack/logger.rb:13:in `call'
rack (1.3.0) lib/rack/methodoverride.rb:24:in `call'
rack (1.3.0) lib/rack/runtime.rb:17:in `call'
activesupport (3.1.0.rc3) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.3.0) lib/rack/lock.rb:34:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/static.rb:53:in `call'
actionpack (3.1.0.rc3) lib/action_dispatch/middleware/static.rb:53:in `call'
hoptoad_notifier (2.4.11) lib/hoptoad_notifier/user_informer.rb:12:in `call'
railties (3.1.0.rc3) lib/rails/engine.rb:438:in `call'
rack-test (0.6.0) lib/rack/mock_session.rb:30:in `request'
rack-test (0.6.0) lib/rack/test.rb:218:in `process_request'
rack-test (0.6.0) lib/rack/test.rb:114:in `request'
actionpack (3.1.0.rc3) lib/action_dispatch/testing/integration.rb:292:in `process'
actionpack (3.1.0.rc3) lib/action_dispatch/testing/integration.rb:33:in `get'
actionpack (3.1.0.rc3) lib/action_dispatch/testing/integration.rb:325:in `block (2 levels) in &lt;module:Runner&gt;'
test/performance/browsing_test.rb:32:in `test_request_contact_information_associated_with_a_person'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:65:in `block in run_test'
activesupport (3.1.0.rc3) lib/active_support/testing/performance/ruby.rb:83:in `profile'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:65:in `run_test'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:146:in `run_test'
activesupport (3.1.0.rc3) lib/active_support/testing/performance/ruby.rb:37:in `block in run'
activesupport (3.1.0.rc3) lib/active_support/testing/performance/ruby.rb:37:in `times'
activesupport (3.1.0.rc3) lib/active_support/testing/performance/ruby.rb:37:in `run'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:140:in `run_profile'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:52:in `block in run'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:50:in `each'
activesupport (3.1.0.rc3) lib/active_support/testing/performance.rb:50:in `run'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:656:in `block (2 levels) in run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:650:in `each'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:650:in `block in run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:649:in `each'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:649:in `run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:609:in `run'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:508:in `block in autorun'</code></pre>
</div>
</div>
<pre id="blame_trace" ><code>This error occurred while loading the following files:
/Users/doulos/Code/missionhub/app/controllers/api/contacts_controller
/Users/doulos/Code/missionhub/app/controllers/api/contacts_controller.rb</code></pre>
<h2 style="margin-top: 30px">Request</h2>
<p><b>Parameters</b>: <pre>{&quot;access_token&quot;=&gt;&quot;e7c01a607441887f30467bdfe74c2bed02e464585ca62a5b8cc0207218dbfd12&quot;,
&quot;id&quot;=&gt;&quot;1282204&quot;}</pre></p>
<p><a href="#" onclick="document.getElementById('session_dump').style.display='block'; return false;">Show session dump</a></p>
<div id="session_dump" style="display:none"><pre></pre></div>
<p><a href="#" onclick="document.getElementById('env_dump').style.display='block'; return false;">Show env dump</a></p>
<div id="env_dump" style="display:none"><pre>HTTP_ACCEPT: &quot;text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5&quot;
REMOTE_ADDR: &quot;127.0.0.1&quot;
SERVER_NAME: &quot;www.example.com&quot;</pre></div>
<h2 style="margin-top: 30px">Response</h2>
<p><b>Headers</b>: <pre>None</pre></p>
require 'performance_test_helper'
class BrowsingTest < ActionDispatch::PerformanceTest
def setup
@user = User.find(1170780)
@user2 = User.find(193194)
@access_token = Rack::OAuth2::Server::AccessToken.where(:identity => @user.id).first
end
def test_request_contact_information_associated_with_a_person
path = "/api/contacts/#{@user.person.id}"
get path, {'access_token' => @access_token.code}
File.open('/users/Doulos/Desktop/testmytest.log', 'a') do |f2|
f2.puts "request contact information associated with person\n"
f2.puts "#{@response.body}\n\n\n"
end
end
end
require 'performance_test_helper'
class ApiTest < ActionDispatch::PerformanceTest
def setup
@user = User.find(1170780)
@user2 = User.find(193194)
@access_token = Rack::OAuth2::Server::AccessToken.where(:identity => @user.id).first
end
def test_request_multiple_people
path="/api/people/#{@user.person.id},#{@user2.person.id}"
get path, {'access_token' => @access_token.code}
File.open('/users/Doulos/Desktop/testmytest.log', 'a') do |f2|
f2.puts "request multiple people\n"
f2.puts "#{@response.body}\n\n\n"
end
end
end
class Api::ContactsController < ApiController
require 'api_helper.rb'
include ApiHelper
skip_before_filter :authenticate_user!
before_filter :valid_request_before, :organization_allowed?, :authorized_leader?, :get_organization
oauth_required :scope => "contacts"
rescue_from Exception, :with => :render_json_error
def search_1
@keywords = get_keywords
unless (@keywords.empty? || !params[:term].present?)
@question_sheets = @keywords.collect(&:question_sheet)
@people = Person.who_answered(@question_sheets).where('`ministry_person`.`firstName` LIKE ? OR `ministry_person`.`lastName` LIKE ? OR `ministry_person`.`preferredName` LIKE ?',"%#{params[:term]}%","%#{params[:term]}%","%#{params[:term]}%")
@people = paginate_filter_sort_people(@people,@organization)
json_output = @people.collect {|person| { person: person.to_hash_basic(@organization)}}
end
final_output = Rails.env.production? ? json_output.to_json : JSON::pretty_generate(json_output)
render :json => final_output
end
def index_1
@keywords = get_keywords
unless @keywords.empty?
@question_sheets = @keywords.collect(&:question_sheet)
@people = Person.who_answered(@question_sheets)
if params[:assigned_to].present?
if params[:assigned_to] == 'none'
@people = unassigned_people
else
@people = @people.joins(:assigned_tos).where('contact_assignments.question_sheet_id' => @question_sheets.collect(&:id), 'contact_assignments.assigned_to_id' => @assigned_to.id)
end
end
@people = paginate_filter_sort_people(@people, @organization)
json_output = @people.collect {|person| {person: person.to_hash_basic(@organization)}}
end
final_output = Rails.env.production? ? json_output.to_json : JSON::pretty_generate(json_output)
render :json => final_output
end
def show_1
@answer_sheets = {}
@people = get_people
unless @people.empty?
@question_sheets = @organization.question_sheets
@questions = (@question_sheets.collect { |q| q.questions }).flatten.uniq
@people.each do |person|
@question_sheets.each do |qs|
@answer_sheets[person] = person.answer_sheets.order('created_at DESC').detect {|as| qs.id == as.question_sheet_id}
end
end
@keywords = @question_sheets.collect { |k| k.questionnable}.flatten.uniq
@keys = @keywords.collect {|k| {name: k.keyword, keyword_id: k.id, questions: k.questions.collect {|q| q.id}}}
json_output = {keywords: @keys, questions: @questions.collect {|q| q.attributes.slice('id', 'kind', 'label', 'style', 'required')}, people: @people.collect {|person| {person: person.to_hash(@organization), form: @questions.collect {|q| {q: q.id, a: q.display_response(@answer_sheets[person])}}}}}
end
final_output = Rails.env.production? ? json_output.to_json : JSON::pretty_generate(json_output)
render :json => final_output
end
end
module ApiHelper
require 'apic.rb'
require 'api_errors.rb'
include ApiErrors
#########################################
#######Validation Methods################
#########################################
def valid_request_before
@valid_fields = valid_request?(request)
end
def valid_request?(request, in_action = nil, prms = nil, accesstoken = nil)
#retrieve the API action requested so we can match the right allowed fields
raise ApiErrors::InvalidRequest if request.try(:path_parameters).nil? && in_action.nil?
#Next block of code primarily to enable testing
if request.nil?
request = Hashie::Mash.new()
request[:path_parameters] = {:action => nil}
end
action = in_action.nil? ? request.path_parameters[:controller].split("/")[1] : in_action
param = prms.nil? ? params : prms
#Handle versioning of API in Apic class
version = param.try(:version).nil? && ((param.try(:version).nil? ? 0 : param[:version]) <= Apic::STD_VERSION) ? Apic::STD_VERSION : param[:version]
version = ["v", version].join
#Let's check to see if the fields query parameter is set first
if !param[:fields].nil?
fields = param[:fields].split(',')
raise ApiErrors::InvalidFieldError if fields.empty?
#Let's validate the fields that they entered into the query params
valid_fields = valid_fields?(fields, action, version)
raise ApiErrors::InvalidFieldError unless valid_fields.length == fields.length
else
#if no fields supplied, send all
valid_fields = Apic::API_ALLOWABLE_FIELDS[version.to_sym][action.to_sym]
end
valid_fields
end
def valid_fields?(fields,action,version)
#return fields that are valid
valid_fields = []
if !Apic::API_ALLOWABLE_FIELDS[version.to_sym][action.to_sym].nil?
validator = Apic::API_ALLOWABLE_FIELDS[version.to_sym][action.to_sym]
valid_fields=[]
fields.each do |field|
valid_fields.push(field) if validator.include?(field) #push all of the fields that match onto valid_fields array
end
end
valid_fields
end
def organization_allowed?
@valid_orgs = get_me.organizations.collect { |x| x.subtree.collect(&:id)}.flatten.uniq
@valid_keywords = SmsKeyword.where(:organization_id => @valid_orgs)
if (params[:org].present? || params[:org_id].present?)
raise ApiErrors::OrganizationNotIntegerError unless (is_int?(params[:org_id]) || is_int?(params[:org]))
org_id = params[:org].present? ? params[:org].to_i : params[:org_id].to_i
raise ApiErrors::OrgNotAllowedError unless @valid_orgs.include?(org_id)
elsif params[:keyword].present?
@valid_key_ids = @valid_keywords.collect(&:id)
raise ApiErrors::OrgNotAllowedError unless @valid_key_ids.include?(params[:keyword])
elsif params[:keyword_id].present?
raise ApiErrors::KeywordNotIntegerError unless is_int?(params[:keyword_id])
@valid_key_names = @valid_keywords.collect(&:keyword)
raise ApiErrors::OrgNotAllowedError unless @valid_key_names.include?(params[:keyword])
end
true
end
def authorized_leader?
temp = get_me.organization_memberships.where(:role => ['leader','admin']).where(:organization_id => get_organization.id).collect(&:organization_id)
raise ApiErrors::IncorrectPermissionsError if temp.empty?
end
#########################################
#######Resource Getters##################
#########################################
def get_people
person_ids = params[:id].split(',')
person_ids.each_with_index do |x,i|
person_ids[i] = User.find(oauth.identity).person.id.to_s if x == "me"
end
people = Person.where(:personID => person_ids)
raise ApiErrors::NoDataReturned if people.empty?
people
end
def get_me
User.find(Rack::OAuth2::Server.get_access_token(params['access_token']).identity).person if params['access_token']
end
def get_keywords
if params[:keyword].present?
@keywords = SmsKeyword.find_all_by_keyword(params[:keyword])
elsif (params[:org].present? || params[:org_id].present?)
org_id = params[:org].present? ? params[:org].to_i : params[:org_id].to_i
@keywords = SmsKeyword.find_all_by_organization_id(org_id)
elsif params[:keyword_id].present?
@keywords = SmsKeyword.find_all_by_id(params[:id])
else @keywords = SmsKeyword.find_all_by_organization_id(get_me.primary_organization.id)
end
end
def get_organization
if params[:org_id].present? || params[:org].present?
raise OrganizationNotIntegerError unless (is_int?(params[:org_id]) || is_int?(params[:org]))
org_id_param = params[:org_id] ? params[:org_id].to_i : params[:org].to_i
@organization = Organization.find(org_id_param)
else
@organization = get_me.primary_organization
end
raise NoOrganizationError if @organization.nil?
@organization
end
#Pass in a Person Activerecord Query object, return ActiveRecord Query object
def paginate_filter_sort_people(people, org)
#settings for below
allowed_sorting_fields = ["time","status"]
allowed_sorting_directions = ["asc", "desc"]
allowed_filter_fields = ["gender", "status"]
allowed_status = ["uncontacted", "contacted", "attempted_contact", "do_not_contact", "completed", "finished"]
#allow for start (SQL Offset) and limit on query. use :start and :limit
raise LimitRequiredWithStartError if (params[:start] && !params[:limit])
people = people.offset(params[:start].to_i.abs) if params[:start].present? && params[:limit].to_i.abs !=0
people = people.limit(params[:limit].to_i.abs) if params[:limit].present? && params[:limit].to_i.abs != 0
#allow for sort CSV array w/ directions CSV array. Uses :sort and :direction
if params[:sort].present?
@sorting_directions = []
@sorting_directions = params[:direction].split(',').select { |d| allowed_sorting_directions.include?(d) } if params[:direction].present?
@sorting_fields = params[:sort].split(',').select { |s| allowed_sorting_fields.include?(s) }
@sorting_fields.each_with_index do |field,index|
case field
when "time"
people = people.order("#{AnswerSheet.table_name}.`created_at` #{@sorting_directions[index]}") unless @sorting_directions[index].nil?
when "status"
status = ["uncontacted", "contacted", "attempted_contact","do_not_contact","completed"].include?(@sorting_fields[index].downcase) ? @sorting_fields[index].downcase : nil
people = people.joins(:organization_memberships).where("`organization_memberships`.`person_id` = `ministry_person`.`personID` AND `organization_memberships`.`organization_id` = ?", org.id).order("`organization_memberships`.`followup_status` #{@sorting_directions[index]}")
end
end
end
#if there were no sorting fields then sort by most recent answer_sheet
people = people.order("#{AnswerSheet.table_name}.`created_at` DESC") unless @sorting_fields.nil?
#allow for filtering by allowed_filter_fields. filters and values both CSV arrays Uses :filters and :values
if params[:filters].present? && params[:values].present?
@filter_fields = params[:filters].split(',').select { |f| allowed_filter_fields.include?(f)}
@filter_values = params[:values].split(',')
@filter_fields.each_with_index do |field,index|
case field
when "gender"
gender = @filter_values[index].downcase == 'male' ? '1' : '0' if ['male','female'].include?(@filter_values[index].downcase)
people = people.where("`ministry_person`.`gender` = ?", gender)
when "status"
status = allowed_status.include?(@filter_values[index].downcase) ? @filter_values[index].downcase : nil
status = ["do_not_contact","completed"] if status == "finished"
people = people.joins(:organization_memberships).where('organization_memberships.followup_status' => status).where("`organization_memberships`.`person_id` = `ministry_person`.`personID` AND `organization_memberships`.`organization_id` = ?", org.id)
end
end
end
people
end
def is_int?(str)
return !!(str =~ /^[-+]?[1-9]([0-9]*)?$/)
end
#Handle all API controller exceptions and output as JSON
def render_json_error(exception = nil)
logger.info "#{exception.message}" if exception
render :json => exception.message and return false
end
end
# See http://m.onkey.org/running-rails-performance-tests-on-real-data
# START : HAX HAX HAX
# Load Rails environment in 'test' mode
RAILS_ENV = "test"
require File.expand_path('../../config/environment', __FILE__)
# Re-establish db connection for 'performance' mode
silence_warnings { RAILS_ENV = "performance" }
ActiveRecord::Base.establish_connection
# STOP : HAX HAX HAX
require_dependency 'application_controller'
require 'test/unit'
require 'active_support/core_ext/kernel/requires'
require 'active_support/test_case'
require 'action_controller/test_case'
require 'action_dispatch/testing/integration'
require 'rails/performance_test_help'
# require '/Users/doulos/Code/missionhub/app/controllers/api/people_controller.rb'
# require '/Users/doulos/Code/missionhub/app/helpers/api_helper.rb'
# You may want to turn off caching, if you're trying to improve non-cached rendering speed.
# Just uncomment this line:
# ActionController::Base.perform_caching = false
# Seems to be a bug in rails3, gives me a "wrong argument type Class (expected Module) (TypeError)" in Action Dispatch / performance_test.rb
#ActiveSupport::Testing::Performance
require 'rack/oauth2/server'
class ActionController::TestCase
include Devise::TestHelpers
end
unless defined?(Test::Unit::AssertionFailedError)
class Test::Unit::AssertionFailedError < ActiveSupport::TestCase::Assertion
end
end
request contact information associated with person
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Action Controller: Exception caught</title>
<style>
body { background-color: #fff; color: #333; }
body, p, ol, ul, td {
font-family: helvetica, verdana, arial, sans-serif;
font-size: 13px;
line-height: 18px;
}
pre {
background-color: #eee;
padding: 10px;
font-size: 11px;
}
a { color: #000; }
a:visited { color: #666; }
a:hover { color: #fff; background-color:#000; }
</style>
</head>
<body>
<h1>
LoadError
in Api::ContactsController#show
</h1>
<pre>Expected /Users/doulos/Code/missionhub/app/controllers/api/contacts_controller.rb to define Api::ContactsController</pre>
<p><code>Rails.root: /Users/doulos/Code/missionhub</code></p>
<div id="traces">
<a href="#" onclick="document.getElementById('Framework-Trace').style.display='none';document.getElementById('Full-Trace').style.display='none';document.getElementById('Application-Trace').style.display='block';; return false;">Application Trace</a> |
<a href="#" onclick="document.getElementById('Application-Trace').style.display='none';document.getElementById('Full-Trace').style.display='none';document.getElementById('Framework-Trace').style.display='block';; return false;">Framework Trace</a> |
<a href="#" onclick="document.getElementById('Application-Trace').style.display='none';document.getElementById('Framework-Trace').style.display='none';document.getElementById('Full-Trace').style.display='block';; return false;">Full Trace</a>
<div id="Application-Trace" style="display: block;">
<pre><code>/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:490:in `load_missing_constant'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:181:in `block in const_missing'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:179:in `each'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/inflector/methods.rb:124:in `block in constantize'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/inflector/methods.rb:123:in `each'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/inflector/methods.rb:123:in `constantize'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:527:in `block in initialize'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:549:in `yield'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:549:in `default'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:549:in `[]'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/routing/route_set.rb:61:in `controller_reference'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/routing/route_set.rb:46:in `controller'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/routing/route_set.rb:25:in `call'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:152:in `block in call'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:93:in `block in recognize'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:166:in `optimized_each'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:92:in `recognize'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:141:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/routing/route_set.rb:531:in `call'
oa-core (0.2.6) lib/omniauth/strategy.rb:44:in `call!'
oa-core (0.2.6) lib/omniauth/strategy.rb:30:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rack-oauth2-server-945bebdc1881/lib/rack/oauth2/server.rb:219:in `call'
hoptoad_notifier (2.4.11) lib/hoptoad_notifier/rack.rb:27:in `call'
client_side_validations (3.1.0) lib/client_side_validations/middleware.rb:18:in `call'
warden (1.0.4) lib/warden/manager.rb:35:in `block in call'
warden (1.0.4) lib/warden/manager.rb:34:in `catch'
warden (1.0.4) lib/warden/manager.rb:34:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
rack (1.3.0) lib/rack/etag.rb:23:in `call'
rack (1.3.0) lib/rack/conditionalget.rb:25:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/head.rb:14:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/params_parser.rb:21:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/flash.rb:243:in `call'
rack (1.3.0) lib/rack/session/abstract/id.rb:195:in `context'
rack (1.3.0) lib/rack/session/abstract/id.rb:190:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/cookies.rb:321:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activerecord/lib/active_record/query_cache.rb:62:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:457:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/callbacks.rb:392:in `_run_call_callbacks'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/callbacks.rb:81:in `run_callbacks'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/callbacks.rb:28:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/reloader.rb:68:in `call'
rack (1.3.0) lib/rack/sendfile.rb:102:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/railties/lib/rails/rack/logger.rb:13:in `call'
rack (1.3.0) lib/rack/methodoverride.rb:24:in `call'
rack (1.3.0) lib/rack/runtime.rb:17:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.3.0) lib/rack/lock.rb:34:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/static.rb:53:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/static.rb:53:in `call'
hoptoad_notifier (2.4.11) lib/hoptoad_notifier/user_informer.rb:12:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/railties/lib/rails/engine.rb:451:in `call'
rack-test (0.6.0) lib/rack/mock_session.rb:30:in `request'
rack-test (0.6.0) lib/rack/test.rb:218:in `process_request'
rack-test (0.6.0) lib/rack/test.rb:114:in `request'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/testing/integration.rb:292:in `process'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/testing/integration.rb:33:in `get'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/testing/integration.rb:325:in `block (2 levels) in &lt;module:Runner&gt;'
test/performance/browsing_test.rb:13:in `test_request_contact_information_associated_with_a_person'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:65:in `block in run_test'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance/ruby.rb:83:in `profile'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:65:in `run_test'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:146:in `run_test'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance/ruby.rb:37:in `block in run'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance/ruby.rb:37:in `times'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance/ruby.rb:37:in `run'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:140:in `run_profile'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:52:in `block in run'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:50:in `each'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:50:in `run'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:656:in `block (2 levels) in run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:650:in `each'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:650:in `block in run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:649:in `each'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:649:in `run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:609:in `run'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:508:in `block in autorun'</code></pre>
</div>
<div id="Framework-Trace" style="display: none;">
<pre><code>/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:490:in `load_missing_constant'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:181:in `block in const_missing'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:179:in `each'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/inflector/methods.rb:124:in `block in constantize'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/inflector/methods.rb:123:in `each'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/inflector/methods.rb:123:in `constantize'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:527:in `block in initialize'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:549:in `yield'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:549:in `default'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:549:in `[]'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/routing/route_set.rb:61:in `controller_reference'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/routing/route_set.rb:46:in `controller'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/routing/route_set.rb:25:in `call'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:152:in `block in call'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:93:in `block in recognize'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:166:in `optimized_each'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:92:in `recognize'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:141:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/routing/route_set.rb:531:in `call'
oa-core (0.2.6) lib/omniauth/strategy.rb:44:in `call!'
oa-core (0.2.6) lib/omniauth/strategy.rb:30:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rack-oauth2-server-945bebdc1881/lib/rack/oauth2/server.rb:219:in `call'
hoptoad_notifier (2.4.11) lib/hoptoad_notifier/rack.rb:27:in `call'
client_side_validations (3.1.0) lib/client_side_validations/middleware.rb:18:in `call'
warden (1.0.4) lib/warden/manager.rb:35:in `block in call'
warden (1.0.4) lib/warden/manager.rb:34:in `catch'
warden (1.0.4) lib/warden/manager.rb:34:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
rack (1.3.0) lib/rack/etag.rb:23:in `call'
rack (1.3.0) lib/rack/conditionalget.rb:25:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/head.rb:14:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/params_parser.rb:21:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/flash.rb:243:in `call'
rack (1.3.0) lib/rack/session/abstract/id.rb:195:in `context'
rack (1.3.0) lib/rack/session/abstract/id.rb:190:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/cookies.rb:321:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activerecord/lib/active_record/query_cache.rb:62:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:457:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/callbacks.rb:392:in `_run_call_callbacks'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/callbacks.rb:81:in `run_callbacks'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/callbacks.rb:28:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/reloader.rb:68:in `call'
rack (1.3.0) lib/rack/sendfile.rb:102:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/railties/lib/rails/rack/logger.rb:13:in `call'
rack (1.3.0) lib/rack/methodoverride.rb:24:in `call'
rack (1.3.0) lib/rack/runtime.rb:17:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.3.0) lib/rack/lock.rb:34:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/static.rb:53:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/static.rb:53:in `call'
hoptoad_notifier (2.4.11) lib/hoptoad_notifier/user_informer.rb:12:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/railties/lib/rails/engine.rb:451:in `call'
rack-test (0.6.0) lib/rack/mock_session.rb:30:in `request'
rack-test (0.6.0) lib/rack/test.rb:218:in `process_request'
rack-test (0.6.0) lib/rack/test.rb:114:in `request'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/testing/integration.rb:292:in `process'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/testing/integration.rb:33:in `get'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/testing/integration.rb:325:in `block (2 levels) in &lt;module:Runner&gt;'
test/performance/browsing_test.rb:13:in `test_request_contact_information_associated_with_a_person'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:65:in `block in run_test'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance/ruby.rb:83:in `profile'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:65:in `run_test'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:146:in `run_test'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance/ruby.rb:37:in `block in run'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance/ruby.rb:37:in `times'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance/ruby.rb:37:in `run'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:140:in `run_profile'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:52:in `block in run'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:50:in `each'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:50:in `run'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:656:in `block (2 levels) in run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:650:in `each'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:650:in `block in run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:649:in `each'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:649:in `run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:609:in `run'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:508:in `block in autorun'</code></pre>
</div>
<div id="Full-Trace" style="display: none;">
<pre><code>/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:490:in `load_missing_constant'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:181:in `block in const_missing'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:179:in `each'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:179:in `const_missing'
rake (0.8.7) lib/rake.rb:2503:in `const_missing'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/inflector/methods.rb:124:in `block in constantize'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/inflector/methods.rb:123:in `each'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/inflector/methods.rb:123:in `constantize'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:527:in `block in initialize'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:549:in `yield'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:549:in `default'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/dependencies.rb:549:in `[]'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/routing/route_set.rb:61:in `controller_reference'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/routing/route_set.rb:46:in `controller'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/routing/route_set.rb:25:in `call'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:152:in `block in call'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:93:in `block in recognize'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:166:in `optimized_each'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:92:in `recognize'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:141:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/routing/route_set.rb:531:in `call'
oa-core (0.2.6) lib/omniauth/strategy.rb:44:in `call!'
oa-core (0.2.6) lib/omniauth/strategy.rb:30:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rack-oauth2-server-945bebdc1881/lib/rack/oauth2/server.rb:219:in `call'
hoptoad_notifier (2.4.11) lib/hoptoad_notifier/rack.rb:27:in `call'
client_side_validations (3.1.0) lib/client_side_validations/middleware.rb:18:in `call'
warden (1.0.4) lib/warden/manager.rb:35:in `block in call'
warden (1.0.4) lib/warden/manager.rb:34:in `catch'
warden (1.0.4) lib/warden/manager.rb:34:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
rack (1.3.0) lib/rack/etag.rb:23:in `call'
rack (1.3.0) lib/rack/conditionalget.rb:25:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/head.rb:14:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/params_parser.rb:21:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/flash.rb:243:in `call'
rack (1.3.0) lib/rack/session/abstract/id.rb:195:in `context'
rack (1.3.0) lib/rack/session/abstract/id.rb:190:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/cookies.rb:321:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activerecord/lib/active_record/query_cache.rb:62:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:457:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/callbacks.rb:392:in `_run_call_callbacks'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/callbacks.rb:81:in `run_callbacks'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/callbacks.rb:28:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/reloader.rb:68:in `call'
rack (1.3.0) lib/rack/sendfile.rb:102:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/railties/lib/rails/rack/logger.rb:13:in `call'
rack (1.3.0) lib/rack/methodoverride.rb:24:in `call'
rack (1.3.0) lib/rack/runtime.rb:17:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.3.0) lib/rack/lock.rb:34:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/static.rb:53:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/middleware/static.rb:53:in `call'
hoptoad_notifier (2.4.11) lib/hoptoad_notifier/user_informer.rb:12:in `call'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/railties/lib/rails/engine.rb:451:in `call'
rack-test (0.6.0) lib/rack/mock_session.rb:30:in `request'
rack-test (0.6.0) lib/rack/test.rb:218:in `process_request'
rack-test (0.6.0) lib/rack/test.rb:114:in `request'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/testing/integration.rb:292:in `process'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/testing/integration.rb:33:in `get'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/actionpack/lib/action_dispatch/testing/integration.rb:325:in `block (2 levels) in &lt;module:Runner&gt;'
test/performance/browsing_test.rb:13:in `test_request_contact_information_associated_with_a_person'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:65:in `block in run_test'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance/ruby.rb:83:in `profile'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:65:in `run_test'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:146:in `run_test'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance/ruby.rb:37:in `block in run'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance/ruby.rb:37:in `times'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance/ruby.rb:37:in `run'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:140:in `run_profile'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:52:in `block in run'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:50:in `each'
/Users/doulos/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/rails-a70f65cbdd43/activesupport/lib/active_support/testing/performance.rb:50:in `run'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:656:in `block (2 levels) in run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:650:in `each'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:650:in `block in run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:649:in `each'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:649:in `run_test_suites'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:609:in `run'
/Users/doulos/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/minitest/unit.rb:508:in `block in autorun'</code></pre>
</div>
</div>
<h2 style="margin-top: 30px">Request</h2>
<p><b>Parameters</b>: <pre>{&quot;access_token&quot;=&gt;&quot;e7c01a607441887f30467bdfe74c2bed02e464585ca62a5b8cc0207218dbfd12&quot;,
&quot;id&quot;=&gt;&quot;1282204&quot;}</pre></p>
<p><a href="#" onclick="document.getElementById('session_dump').style.display='block'; return false;">Show session dump</a></p>
<div id="session_dump" style="display:none"><pre></pre></div>
<p><a href="#" onclick="document.getElementById('env_dump').style.display='block'; return false;">Show env dump</a></p>
<div id="env_dump" style="display:none"><pre>HTTP_ACCEPT: &quot;text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5&quot;
REMOTE_ADDR: &quot;127.0.0.1&quot;
SERVER_NAME: &quot;www.example.com&quot;</pre></div>
<h2 style="margin-top: 30px">Response</h2>
<p><b>Headers</b>: <pre>None</pre></p>
</body>
</html>
ENV["RAILS_ENV"] = "test"
# require 'simplecov'
# SimpleCov.start 'rails' do
# add_filter "vendor"
# merge_timeout 36000
# end
require File.expand_path('../../config/environment', __FILE__)
require 'rack/oauth2/server'
require 'rails/test_help'
require 'shoulda/rails'
require 'ephemeral_response'
require 'factory_girl'
require File.dirname(__FILE__) + "/factories"
EphemeralResponse.activate
EphemeralResponse.configure do |config|
config.fixture_directory = "test/fixtures/ephemeral_response"
config.white_list = 'localhost'
end
#Devise::OmniAuth.test_mode!
OmniAuth.config.test_mode = true
OmniAuth.config.add_mock(:facebook, {"provider"=>"facebook", "uid"=>"690860831", "credentials"=>{"token"=>"164949660195249|bd3f24d52b4baf9412141538.1-690860831|w79R36CalrEAY-9e9kp8fDWJ69A"}, "user_info"=>{"nickname"=>"mattrw89", "email"=>"mattrw89@gmail.com", "first_name"=>"Matt", "last_name"=>"Webb", "name"=>"Matt Webb", "image"=>"http://graph.facebook.com/690860831/picture?type=square", "urls"=>{"Facebook"=>"http://www.facebook.com/mattrw89", "Website"=>nil}}, "extra"=>{"user_hash"=>{"id"=>"690860831", "name"=>"Matt Webb", "first_name"=>"Matt", "last_name"=>"Webb", "link"=>"http://www.facebook.com/mattrw89", "username"=>"mattrw89", "birthday"=>"12/18/1989", "location"=>{"id"=>"108288992526695", "name"=>"Orlando, Florida"}, "education"=>[{"school"=>{"id"=>"115045251844283", "name"=>"Niceville Senior High"}, "year"=>{"id"=>"141778012509913", "name"=>"2008"}, "type"=>"High School"}, {"school"=>{"id"=>"35078114590", "name"=>"University of Central Florida"}, "year"=>{"id"=>"118118634930920", "name"=>"2012"}, "concentration"=>[{"id"=>"124764794262413", "name"=>"Electrical Engineering"}], "type"=>"College"}], "gender"=>"male", "email"=>"mattrw89@gmail.com", "timezone"=>-4, "locale"=>"en_US", "languages"=>[{"id"=>"137946929599946", "name"=>"FORTRAN 66,77"}, {"id"=>"133255596736945", "name"=>"ruby"}, {"id"=>"189887071024044", "name"=>"Objective C"}], "verified"=>true, "updated_time"=>"2011-05-23T12:07:56+0000"}}})
class ActiveSupport::TestCase
# Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
#
# Note: You'll currently still have to declare fixtures explicitly in integration tests
# -- they do not yet inherit this setting
# fixtures :all
# Add more helper methods to be used by all tests here...
end
class ActionController::TestCase
include Devise::TestHelpers
end
unless defined?(Test::Unit::AssertionFailedError)
class Test::Unit::AssertionFailedError < ActiveSupport::TestCase::Assertion
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment