diaspora_federation-test 0.1.9 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5277ed57265077b9fa2051428c1e949f36be58e1
4
- data.tar.gz: 3d2a2af861a8012b518160ba1271236b6fdae231
3
+ metadata.gz: d26a01a508e1ce0d3e3df756d9d87ad97856ccb0
4
+ data.tar.gz: 88c63320bf19f4a44d7bea92801d1c61fb0d1d85
5
5
  SHA512:
6
- metadata.gz: dc8a123b39c8628d7832dee33cdb6d858f048ddde1303326b5d106b2ac9d0eb99a82f09c563e19d1b1dd73721bb4526130f814a9d1c0e67708c9dce540ed50d1
7
- data.tar.gz: 3aacc11801b6b3d42af5ec093519fcb7a5b4ac7f3d5d0fc40f5b206c60ad6ee48bcfce9ba227dbf9bdf244c766fc7ef9fadc17729fea2cb42b8e79fa8dd02b51
6
+ metadata.gz: de4434e11f480bc8cd0fe2d4d76657d40e0576929722c342eaa4ee1c9334d69457e671432b0044c2337bc9edee6ee03dc09b03fc8b4cfd3e2db37e610d712bce
7
+ data.tar.gz: 4f5387543afc3be73557fc5ff657af619a7f4006a1cca002f4f157250d4082691ce26b9eb2c6af52bd8a4fd4af0faf56790fb5bcab8f9e8dea8948b808ed2dd3
@@ -0,0 +1,25 @@
1
+ module DiasporaFederation
2
+ module Test
3
+ # Generator to instantiate entities
4
+ class EntityGenerator < Fabrication::Generator::Base
5
+ def self.supports?(klass)
6
+ klass.ancestors.include?(DiasporaFederation::Entity)
7
+ end
8
+
9
+ def build_instance
10
+ self._instance = _klass.new(_attributes)
11
+ end
12
+
13
+ def to_hash(attributes=[], _callbacks=[])
14
+ process_attributes(attributes)
15
+ _attributes.each_with_object({}) do |(name, value), hash|
16
+ hash[name.to_sym] = value
17
+ end
18
+ end
19
+ end
20
+
21
+ Fabrication.configure do |config|
22
+ config.generators << EntityGenerator
23
+ end
24
+ end
25
+ end
@@ -1,231 +1,208 @@
1
- require "diaspora_federation"
2
- require "factory_girl"
3
1
  require "uuid"
2
+ require "securerandom"
3
+ require "diaspora_federation/test"
4
4
 
5
5
  module DiasporaFederation
6
6
  module Test
7
7
  # Factories for federation entities
8
8
  module Factories
9
- # Defines the federation entity factories
10
- def self.federation_factories
11
- FactoryGirl.define do
12
- initialize_with { new(attributes) }
13
- sequence(:guid) { UUID.generate :compact }
14
- sequence(:diaspora_id) {|n| "person-#{n}-#{SecureRandom.hex(3)}@localhost:3000" }
15
- sequence(:public_key) { OpenSSL::PKey::RSA.generate(1024).public_key.export }
16
-
17
- factory :webfinger, class: DiasporaFederation::Discovery::WebFinger do
18
- guid
19
- acct_uri { "acct:#{generate(:diaspora_id)}" }
20
- alias_url "http://localhost:3000/people/0123456789abcdef"
21
- hcard_url "http://localhost:3000/hcard/users/user"
22
- seed_url "http://localhost:3000/"
23
- profile_url "http://localhost:3000/u/user"
24
- atom_url "http://localhost:3000/public/user.atom"
25
- salmon_url "http://localhost:3000/receive/users/0123456789abcdef"
26
- public_key
27
- subscribe_url "http://localhost:3000/people?q={uri}"
28
- end
29
-
30
- factory :h_card, class: DiasporaFederation::Discovery::HCard do
31
- guid
32
- nickname "some_name"
33
- full_name "my name"
34
- first_name "my name"
35
- last_name ""
36
- url "http://localhost:3000/"
37
- public_key
38
- photo_large_url "/assets/user/default.png"
39
- photo_medium_url "/assets/user/default.png"
40
- photo_small_url "/assets/user/default.png"
41
- searchable true
42
- end
43
-
44
- factory :person_entity, class: DiasporaFederation::Entities::Person do
45
- guid
46
- author { generate(:diaspora_id) }
47
- url "http://localhost:3000/"
48
- exported_key { generate(:public_key) }
49
- profile {
50
- FactoryGirl.build(:profile_entity, author: author)
51
- }
52
- end
53
-
54
- factory :profile_entity, class: DiasporaFederation::Entities::Profile do
55
- author { generate(:diaspora_id) }
56
- first_name "my name"
57
- last_name ""
58
- image_url "/assets/user/default.png"
59
- image_url_medium "/assets/user/default.png"
60
- image_url_small "/assets/user/default.png"
61
- birthday "1988-07-15"
62
- gender "Male"
63
- bio "some text about me"
64
- location "github"
65
- searchable true
66
- nsfw false
67
- tag_string "#i #love #tags"
68
- end
69
-
70
- factory :location_entity, class: DiasporaFederation::Entities::Location do
71
- address "Vienna, Austria"
72
- lat 48.208174.to_s
73
- lng 16.373819.to_s
74
- end
75
-
76
- factory :photo_entity, class: DiasporaFederation::Entities::Photo do
77
- guid
78
- author { generate(:diaspora_id) }
79
- public(true)
80
- created_at { Time.now.utc }
81
- remote_photo_path "https://diaspora.example.tld/uploads/images/"
82
- remote_photo_name "f2a41e9d2db4d9a199c8.jpg"
83
- text "what you see here..."
84
- status_message_guid { generate(:guid) }
85
- height 480
86
- width 800
87
- end
88
-
89
- factory :relayable_entity, class: DiasporaFederation::Entities::Relayable do
90
- parent_guid { generate(:guid) }
91
- parent { FactoryGirl.build(:related_entity) }
92
- end
93
-
94
- factory :participation_entity,
95
- class: DiasporaFederation::Entities::Participation, parent: :relayable_entity do
96
- author { generate(:diaspora_id) }
97
- guid
98
- parent_type "Post"
99
- end
100
-
101
- factory :status_message_entity, class: DiasporaFederation::Entities::StatusMessage do
102
- text "i am a very interesting status update"
103
- author { generate(:diaspora_id) }
104
- guid
105
- public(true)
106
- created_at { Time.now.utc }
107
- end
108
-
109
- factory :request_entity, class: DiasporaFederation::Entities::Request do
110
- author { generate(:diaspora_id) }
111
- recipient { generate(:diaspora_id) }
112
- end
113
-
114
- factory :contact_entity, class: DiasporaFederation::Entities::Contact do
115
- author { generate(:diaspora_id) }
116
- recipient { generate(:diaspora_id) }
117
- following true
118
- sharing true
119
- end
120
-
121
- factory :comment_entity, class: DiasporaFederation::Entities::Comment, parent: :relayable_entity do
122
- author { generate(:diaspora_id) }
123
- guid
124
- text "this is a very informative comment"
125
- end
126
-
127
- factory :like_entity, class: DiasporaFederation::Entities::Like, parent: :relayable_entity do
128
- positive true
129
- author { generate(:diaspora_id) }
130
- guid
131
- parent_type "Post"
132
- end
133
-
134
- factory :account_deletion_entity, class: DiasporaFederation::Entities::AccountDeletion do
135
- author { generate(:diaspora_id) }
136
- end
137
-
138
- factory :conversation_entity, class: DiasporaFederation::Entities::Conversation do
139
- author { generate(:diaspora_id) }
140
- guid
141
- subject "this is a very informative subject"
142
- created_at { Time.now.utc }
143
- messages []
144
- participants { Array.new(3) { generate(:diaspora_id) }.join(";") }
145
- end
146
-
147
- factory :message_entity, class: DiasporaFederation::Entities::Message, parent: :relayable_entity do
148
- guid
149
- author { generate(:diaspora_id) }
150
- text "this is a very informative text"
151
- created_at { Time.now.utc }
152
- conversation_guid { generate(:guid) }
153
- end
154
-
155
- factory :relayable_retraction_entity, class: DiasporaFederation::Entities::RelayableRetraction do
156
- author { generate(:diaspora_id) }
157
- target_guid { generate(:guid) }
158
- target_type "Comment"
159
- target { FactoryGirl.build(:related_entity, author: author) }
160
- end
161
-
162
- factory :reshare_entity, class: DiasporaFederation::Entities::Reshare do
163
- root_author { generate(:diaspora_id) }
164
- root_guid { generate(:guid) }
165
- guid
166
- author { generate(:diaspora_id) }
167
- public(true)
168
- created_at { Time.now.utc }
169
- provider_display_name { "the testsuite" }
170
- end
171
-
172
- factory :retraction_entity, class: DiasporaFederation::Entities::Retraction do
173
- author { generate(:diaspora_id) }
174
- target_guid { generate(:guid) }
175
- target_type "Post"
176
- target { FactoryGirl.build(:related_entity, author: author) }
177
- end
178
-
179
- factory :signed_retraction_entity, class: DiasporaFederation::Entities::SignedRetraction do
180
- author { generate(:diaspora_id) }
181
- target_guid { generate(:guid) }
182
- target_type "Post"
183
- target { FactoryGirl.build(:related_entity, author: author) }
184
- end
185
-
186
- factory :poll_answer_entity, class: DiasporaFederation::Entities::PollAnswer do
187
- guid
188
- answer { "Obama is a bicycle" }
189
- end
190
-
191
- factory :poll_entity, class: DiasporaFederation::Entities::Poll do
192
- guid
193
- question { "Select an answer" }
194
- poll_answers { Array.new(3) { FactoryGirl.build(:poll_answer_entity) } }
195
- end
196
-
197
- factory :poll_participation_entity,
198
- class: DiasporaFederation::Entities::PollParticipation, parent: :relayable_entity do
199
- author { generate(:diaspora_id) }
200
- guid
201
- poll_answer_guid { generate(:guid) }
202
- end
203
-
204
- factory :event_entity, class: DiasporaFederation::Entities::Event do
205
- author { generate(:diaspora_id) }
206
- guid
207
- summary "Cool event"
208
- description "You need to see this!"
209
- start { Time.now.utc.change(min: 0).change(sec: 0).change(usec: 0) - 1.hour }
210
- add_attribute(:end) { Time.now.utc.change(min: 0).change(sec: 0).change(usec: 0) + 1.hour }
211
- all_day false
212
- timezone "Europe/Berlin"
213
- end
214
-
215
- factory :event_participation_entity,
216
- class: DiasporaFederation::Entities::EventParticipation, parent: :relayable_entity do
217
- author { generate(:diaspora_id) }
218
- guid
219
- status "accepted"
220
- end
221
-
222
- factory :related_entity, class: DiasporaFederation::Entities::RelatedEntity do
223
- author { generate(:diaspora_id) }
224
- local true
225
- public false
226
- parent nil
227
- end
228
- end
9
+ Fabricate.sequence(:guid) { UUID.generate(:compact) }
10
+ Fabricate.sequence(:diaspora_id) {|n| "person-#{n}-#{SecureRandom.hex(3)}@localhost:3000" }
11
+ Fabricate.sequence(:public_key) { OpenSSL::PKey::RSA.generate(1024).public_key.export }
12
+
13
+ Fabricator(:webfinger, class_name: DiasporaFederation::Discovery::WebFinger) do
14
+ acct_uri { "acct:#{Fabricate.sequence(:diaspora_id)}" }
15
+ alias_url "http://localhost:3000/people/0123456789abcdef"
16
+ hcard_url "http://localhost:3000/hcard/users/user"
17
+ seed_url "http://localhost:3000/"
18
+ profile_url "http://localhost:3000/u/user"
19
+ atom_url "http://localhost:3000/public/user.atom"
20
+ salmon_url "http://localhost:3000/receive/users/0123456789abcdef"
21
+ subscribe_url "http://localhost:3000/people?q={uri}"
22
+ end
23
+
24
+ Fabricator(:h_card, class_name: DiasporaFederation::Discovery::HCard) do
25
+ guid { Fabricate.sequence(:guid) }
26
+ nickname "some_name"
27
+ full_name "my name"
28
+ first_name "my name"
29
+ last_name ""
30
+ url "http://localhost:3000/"
31
+ public_key { Fabricate.sequence(:public_key) }
32
+ photo_large_url "/assets/user/default.png"
33
+ photo_medium_url "/assets/user/default.png"
34
+ photo_small_url "/assets/user/default.png"
35
+ searchable true
36
+ end
37
+
38
+ Fabricator(:account_deletion_entity, class_name: DiasporaFederation::Entities::AccountDeletion) do
39
+ author { Fabricate.sequence(:diaspora_id) }
40
+ end
41
+
42
+ Fabricator(:account_migration_entity, class_name: DiasporaFederation::Entities::AccountMigration) do
43
+ author { Fabricate.sequence(:diaspora_id) }
44
+ profile { Fabricate(:profile_entity) }
45
+ end
46
+
47
+ Fabricator(:person_entity, class_name: DiasporaFederation::Entities::Person) do
48
+ guid { Fabricate.sequence(:guid) }
49
+ author { Fabricate.sequence(:diaspora_id) }
50
+ url "http://localhost:3000/"
51
+ exported_key { Fabricate.sequence(:public_key) }
52
+ profile {|attrs| Fabricate(:profile_entity, author: attrs[:author]) }
53
+ end
54
+
55
+ Fabricator(:profile_entity, class_name: DiasporaFederation::Entities::Profile) do
56
+ author { Fabricate.sequence(:diaspora_id) }
57
+ first_name "my name"
58
+ last_name ""
59
+ image_url "/assets/user/default.png"
60
+ image_url_medium "/assets/user/default.png"
61
+ image_url_small "/assets/user/default.png"
62
+ birthday "1988-07-15"
63
+ gender "Male"
64
+ bio "some text about me"
65
+ location "github"
66
+ searchable true
67
+ public false
68
+ nsfw false
69
+ tag_string "#i #love #tags"
70
+ end
71
+
72
+ Fabricator(:location_entity, class_name: DiasporaFederation::Entities::Location) do
73
+ address "Vienna, Austria"
74
+ lat 48.208174.to_s
75
+ lng 16.373819.to_s
76
+ end
77
+
78
+ Fabricator(:photo_entity, class_name: DiasporaFederation::Entities::Photo) do
79
+ guid { Fabricate.sequence(:guid) }
80
+ author { Fabricate.sequence(:diaspora_id) }
81
+ public true
82
+ created_at { Time.now.utc }
83
+ remote_photo_path "https://diaspora.example.tld/uploads/images/"
84
+ remote_photo_name "f2a41e9d2db4d9a199c8.jpg"
85
+ text "what you see here..."
86
+ status_message_guid { Fabricate.sequence(:guid) }
87
+ height 480
88
+ width 800
89
+ end
90
+
91
+ Fabricator(:relayable_entity, class_name: DiasporaFederation::Entities::Relayable) do
92
+ parent_guid { Fabricate.sequence(:guid) }
93
+ parent { Fabricate(:related_entity) }
94
+ end
95
+
96
+ Fabricator(:participation_entity, class_name: DiasporaFederation::Entities::Participation) do
97
+ author { Fabricate.sequence(:diaspora_id) }
98
+ guid { Fabricate.sequence(:guid) }
99
+ parent_guid { Fabricate.sequence(:guid) }
100
+ parent_type "Post"
101
+ end
102
+
103
+ Fabricator(:status_message_entity, class_name: DiasporaFederation::Entities::StatusMessage) do
104
+ text "i am a very interesting status update"
105
+ author { Fabricate.sequence(:diaspora_id) }
106
+ guid { Fabricate.sequence(:guid) }
107
+ public true
108
+ created_at { Time.now.utc }
109
+ end
110
+
111
+ Fabricator(:contact_entity, class_name: DiasporaFederation::Entities::Contact) do
112
+ author { Fabricate.sequence(:diaspora_id) }
113
+ recipient { Fabricate.sequence(:diaspora_id) }
114
+ following true
115
+ sharing true
116
+ end
117
+
118
+ Fabricator(:comment_entity, class_name: DiasporaFederation::Entities::Comment, from: :relayable_entity) do
119
+ author { Fabricate.sequence(:diaspora_id) }
120
+ guid { Fabricate.sequence(:guid) }
121
+ text "this is a very informative comment"
122
+ end
123
+
124
+ Fabricator(:like_entity, class_name: DiasporaFederation::Entities::Like, from: :relayable_entity) do
125
+ positive true
126
+ author { Fabricate.sequence(:diaspora_id) }
127
+ guid { Fabricate.sequence(:guid) }
128
+ parent_type "Post"
129
+ end
130
+
131
+ Fabricator(:conversation_entity, class_name: DiasporaFederation::Entities::Conversation) do
132
+ author { Fabricate.sequence(:diaspora_id) }
133
+ guid { Fabricate.sequence(:guid) }
134
+ subject "this is a very informative subject"
135
+ created_at { Time.now.utc }
136
+ messages []
137
+ participants { Array.new(3) { Fabricate.sequence(:diaspora_id) }.join(";") }
138
+ end
139
+
140
+ Fabricator(:message_entity, class_name: DiasporaFederation::Entities::Message) do
141
+ guid { Fabricate.sequence(:guid) }
142
+ author { Fabricate.sequence(:diaspora_id) }
143
+ text "this is a very informative text"
144
+ created_at { Time.now.utc }
145
+ conversation_guid { Fabricate.sequence(:guid) }
146
+ end
147
+
148
+ Fabricator(:reshare_entity, class_name: DiasporaFederation::Entities::Reshare) do
149
+ root_author { Fabricate.sequence(:diaspora_id) }
150
+ root_guid { Fabricate.sequence(:guid) }
151
+ guid { Fabricate.sequence(:guid) }
152
+ author { Fabricate.sequence(:diaspora_id) }
153
+ public true
154
+ created_at { Time.now.utc }
155
+ provider_display_name { "the testsuite" }
156
+ end
157
+
158
+ Fabricator(:retraction_entity, class_name: DiasporaFederation::Entities::Retraction) do
159
+ author { Fabricate.sequence(:diaspora_id) }
160
+ target_guid { Fabricate.sequence(:guid) }
161
+ target_type "Post"
162
+ target {|attrs| Fabricate(:related_entity, author: attrs[:author]) }
163
+ end
164
+
165
+ Fabricator(:poll_answer_entity, class_name: DiasporaFederation::Entities::PollAnswer) do
166
+ guid { Fabricate.sequence(:guid) }
167
+ answer { "Obama is a bicycle" }
168
+ end
169
+
170
+ Fabricator(:poll_entity, class_name: DiasporaFederation::Entities::Poll) do
171
+ guid { Fabricate.sequence(:guid) }
172
+ question { "Select an answer" }
173
+ poll_answers { Array.new(3) { Fabricate(:poll_answer_entity) } }
174
+ end
175
+
176
+ Fabricator(:poll_participation_entity,
177
+ class_name: DiasporaFederation::Entities::PollParticipation, from: :relayable_entity) do
178
+ author { Fabricate.sequence(:diaspora_id) }
179
+ guid { Fabricate.sequence(:guid) }
180
+ poll_answer_guid { Fabricate.sequence(:guid) }
181
+ end
182
+
183
+ Fabricator(:event_entity, class_name: DiasporaFederation::Entities::Event) do |f|
184
+ author { Fabricate.sequence(:diaspora_id) }
185
+ guid { Fabricate.sequence(:guid) }
186
+ summary "Cool event"
187
+ description "You need to see this!"
188
+ start { change_time(Time.now.utc, min: 0) - 3600 }
189
+ f.end { change_time(Time.now.utc, min: 0) + 3600 }
190
+ all_day false
191
+ timezone "Europe/Berlin"
192
+ end
193
+
194
+ Fabricator(:event_participation_entity,
195
+ class_name: DiasporaFederation::Entities::EventParticipation, from: :relayable_entity) do
196
+ author { Fabricate.sequence(:diaspora_id) }
197
+ guid { Fabricate.sequence(:guid) }
198
+ status "accepted"
199
+ end
200
+
201
+ Fabricator(:related_entity, class_name: DiasporaFederation::Entities::RelatedEntity) do
202
+ author { Fabricate.sequence(:diaspora_id) }
203
+ local true
204
+ public false
205
+ parent nil
229
206
  end
230
207
  end
231
208
  end
@@ -1,4 +1,7 @@
1
- require "diaspora_federation/test/factories"
1
+ require "fabrication"
2
+
3
+ require "diaspora_federation"
4
+ require "diaspora_federation/test/entity_generator"
2
5
 
3
6
  module DiasporaFederation
4
7
  # This module encapsulates helper functions maybe wanted by a testsuite of a diaspora_federation gem user application.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: diaspora_federation-test
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benjamin Neff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-30 00:00:00.000000000 Z
11
+ date: 2017-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diaspora_federation
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.9
19
+ version: 0.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.9
26
+ version: 0.2.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: factory_girl
28
+ name: fabrication
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '4.7'
33
+ version: 2.16.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '4.7'
40
+ version: 2.16.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: uuid
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -61,6 +61,7 @@ extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
63
  - lib/diaspora_federation/test.rb
64
+ - lib/diaspora_federation/test/entity_generator.rb
64
65
  - lib/diaspora_federation/test/factories.rb
65
66
  homepage: https://github.com/diaspora/diaspora_federation
66
67
  licenses: