Welcome to mirror list, hosted at ThFree Co, Russian Federation.

helper_methods.rb « spec - github.com/diaspora/diaspora.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 4dc1ca8f2c0a816a1207fbb8a188bdf18a8514e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
module HelperMethods

  def stub_comment_signature_verification
    Comment.any_instance.stubs(:verify_signature).returns(true)
  end

  def unstub_mocha_stubs
    Mocha::Mockery.instance.stubba.unstub_all
  end

  def get_models
    models = []
    Dir.glob( File.dirname(__FILE__) + '/../app/models/*' ).each do |f|
      models << File.basename( f ).gsub( /^(.+).rb/, '\1')
    end
    models
  end

  def stub_user_message_handle_methods(user)
    user.stub!(:push_to_people)
    user.stub!(:push_to_hub)
    user.stub!(:push_to_person)
  end

  def message_queue
    User::QUEUE
  end

  def friend_users(user1, aspect1, user2, aspect2)
    request = user1.send_friend_request_to(user2.person, aspect1)

    user2.receive request.to_diaspora_xml, user1.person

    reversed_request = user2.accept_friend_request( request.id, aspect2.id)
    user1.reload

    user1.receive reversed_request.to_diaspora_xml, user2.person
    user1.reload
    aspect1.reload
    user2.reload
    aspect2.reload
  end

  def stub_success(address = 'abc@example.com', opts = {})
    host = address.split('@')[1]
    stub_request(:get, "https://#{host}/.well-known/host-meta").to_return(:status => 200, :body => host_xrd)
    stub_request(:get, "http://#{host}/.well-known/host-meta").to_return(:status => 200, :body => host_xrd)
    if opts[:diaspora] || host.include?("diaspora")
      stub_request(:get, /webfinger\/\?q=#{address}/).to_return(:status => 200, :body => finger_xrd)
      stub_request(:get, "http://#{host}/hcard/users/4c8eccce34b7da59ff000002").to_return(:status => 200, :body => hcard_response)
    else
      stub_request(:get, /webfinger\/\?q=#{address}/).to_return(:status => 200, :body => nonseed_finger_xrd)
      stub_request(:get, 'http://evan.status.net/hcard').to_return(:status => 200, :body => evan_hcard)
    end
  end

  def stub_failure(address = 'abc@example.com')
    host = address.split('@')[1]
    stub_request(:get, "https://#{host}/.well-known/host-meta").to_return(:status => 200, :body => host_xrd)
    stub_request(:get, "http://#{host}/.well-known/host-meta").to_return(:status => 200, :body => host_xrd)
    stub_request(:get, /webfinger\/\?q=#{address}/).to_return(:status => 500)
  end

  def host_xrd
    File.open(File.dirname(__FILE__) + '/fixtures/host_xrd').read
  end

  def finger_xrd
    File.open(File.dirname(__FILE__) + '/fixtures/finger_xrd').read
  end

  def hcard_response
    File.open(File.dirname(__FILE__) + '/fixtures/hcard_response').read
  end

  def nonseed_finger_xrd
    File.open(File.dirname(__FILE__) + '/fixtures/nonseed_finger_xrd').read
  end

  def evan_hcard
    File.open(File.dirname(__FILE__) + '/fixtures/evan_hcard').read
  end

  def make_user
    UserFixer.fixed_user
  end

  class UserFixer
    def self.regenerate_user_fixtures
      users = {:users => build_user_fixtures}
      File.open(File.join(Rails.root,"spec/fixtures/users.yaml"),'w') do |file|
        file.write(users.to_yaml)
      end
    end

    def self.build_user_fixtures
      arr = []
      10.times do
        user = Factory :user
        person = user.person
        arr << { :user => user.to_mongo, :person => person.to_mongo}
      end
      arr
    end

    def self.load_user_fixtures
      yaml_users = YAML.load_file(File.join(Rails.root,"spec/fixtures/users.yaml"))
      @@user_hashes = []
      @@user_number = 0
      yaml_users[:users].each do |yaml_user|
        user_id = yaml_user[:user]["_id"].to_id
        @@user_hashes << {:id => user_id, :data => yaml_user}
      end
    end

    def self.fixed_user
      db = MongoMapper.database
      people = db.collection("people")
      users = db.collection("users")
      user_hash = @@user_hashes[@@user_number]
      @@user_number += 1
      @@user_number = 0 if @@user_number >= @@user_hashes.length
      users.insert(user_hash[:data][:user])
      people.insert(user_hash[:data][:person])

      User.find(user_hash[:id])
    end
  end
end