Commit graph

290 commits

Author SHA1 Message Date
Benjamin Neff
5a9ba266b4 add ParentNotFound error, if parent can't be fetched 2016-05-07 03:12:33 +02:00
Benjamin Neff
c9d0b978d4 add validators for empty arrays 2016-04-29 03:59:24 +02:00
Benjamin Neff
28ab54abef use default values after parse xml 2016-04-29 02:59:09 +02:00
Benjamin Neff
8aa353a438 add validator for poll_answers 2016-04-29 01:32:49 +02:00
Benjamin Neff
53ba96acca simplify diaspora ID regex
hostname doesn't allow underscores, fixes #33
2016-04-23 23:48:03 +02:00
Benjamin Neff
0c4307a4de better logging for receiving 2016-04-03 03:34:53 +02:00
Benjamin Neff
a8af94f192 validates entity on receive if it can be public but is not 2016-04-03 00:01:50 +02:00
Benjamin Neff
c8be9083f0 move sender_valid? logic to Retraction and Relayable 2016-04-02 22:14:38 +02:00
Benjamin Neff
05cd90f073 validate sender for retraction and relayable 2016-04-01 03:51:24 +02:00
Benjamin Neff
c7c2957b07 fetch from remote if parent unknown locally 2016-03-31 04:33:52 +02:00
Benjamin Neff
6ef1545fd0 cleanup parent_type for relayables 2016-03-29 03:45:32 +02:00
Benjamin Neff
aac2a1652e create expect_callback() spec-helper 2016-03-29 03:14:01 +02:00
Benjamin Neff
1d4d3d732d use shorter callback keys for key-callbacks 2016-03-29 02:42:19 +02:00
Benjamin Neff
2db0931ce5 write more tests for retractions 2016-03-29 02:30:43 +02:00
Benjamin Neff
f88a3abb3d use RelatedEntity as target for all Retractions 2016-03-28 21:15:21 +02:00
Benjamin Neff
01d45e225d use RelatedEntity as target for RelayableRetraction 2016-03-28 20:14:25 +02:00
Benjamin Neff
8f2b3e6a14 use data from parent-RelatedEntity for Relayables 2016-03-28 19:52:57 +02:00
Benjamin Neff
23fc8dc180 use related entity as parent for relayables 2016-03-28 17:46:37 +02:00
Benjamin Neff
1ee9d30ddb add related entity 2016-03-28 17:23:38 +02:00
Benjamin Neff
ef43104880 create new Contact entity
* replaces Request entity (better name)
* with following/sharing state
* should also be used as retraction-type

see #32
2016-03-23 01:28:06 +01:00
Benjamin Neff
20675b941a create public/private receiver 2016-03-21 01:05:13 +01:00
Benjamin Neff
ca0a853134 return MagicEnvelope after parsing a Slap 2016-03-21 01:05:13 +01:00
Benjamin Neff
e4b5e79842 create MagicEnvelope instance after unenvelop 2016-03-20 21:07:47 +01:00
Benjamin Neff
0990eff69c don't add key_id to legacy private encrypted slap xml 2016-03-20 17:54:52 +01:00
Benjamin Neff
3811cd0c03 move parse logic to receive methods 2016-03-20 17:39:41 +01:00
Benjamin Neff
3a83dc97ac use author_id from slap to fetch pubkey in magic-env 2016-03-20 17:16:08 +01:00
Benjamin Neff
4e0c7e205b create attr_reader for payload entity and sender on magic env instance 2016-03-20 17:08:58 +01:00
Benjamin Neff
930c3051c7 handle SignedRetraction and RelayableRetraction as Retraction after parse 2016-03-18 03:12:31 +01:00
Benjamin Neff
bd9cc67f5e create receiver for new protocol and write tests 2016-03-18 02:54:17 +01:00
Benjamin Neff
198e23ca65 write FetchController spec 2016-03-15 02:17:04 +01:00
Benjamin Neff
176425f881 rename Fetcher to HttpClient
don't use the same classname twice
2016-03-15 02:17:04 +01:00
Benjamin Neff
d83b6f14f5 create entity fetcher for public entities 2016-03-15 02:17:04 +01:00
Benjamin Neff
4a7fd52844 don't modify the parameter string in Entity.entity_class 2016-03-15 01:30:08 +01:00
Benjamin Neff
35ea1d3f70 create abstract post type with shared attributes 2016-03-11 03:44:09 +01:00
Benjamin Neff
c64eb0f838 fix rubocop offense 2016-03-08 03:11:34 +01:00
Benjamin Neff
57ed20719f add created_at to comment entity
this is a preparation for diaspora/diaspora#4269
2016-03-08 03:08:28 +01:00
Benjamin Neff
c4e98dd2cc change XMLs for comment integration spec 2016-02-22 02:42:50 +01:00
Benjamin Neff
10c09752d2 xml_order and additional_xml_elements only for Relayables 2016-02-22 02:42:50 +01:00
Benjamin Neff
2cdaea0d70 move parse code to Entity 2016-02-20 20:23:33 +01:00
Benjamin Neff
2e3bf2f132 refactoring to_xml for SignedRetraction and RelayableRetraction 2016-02-20 02:06:32 +01:00
Benjamin Neff
d616e5fae9 refactoring to_xml and signing 2016-02-19 03:35:01 +01:00
Benjamin Neff
823db3ee18 refactoring xml generation
also refactoring `xml_name`
2016-02-18 03:17:08 +01:00
Benjamin Neff
03fe90ffaa Merge branch 'encrypted-salmon' into develop 2016-02-15 04:17:13 +01:00
Benjamin Neff
f1874f20bd add slap/magic-env switch to the receive-controller 2016-02-14 19:00:43 +01:00
Benjamin Neff
566ac9ff2d rename SlapReceiver and mark them deprecated 2016-02-14 01:36:18 +01:00
Benjamin Neff
76a4ea929b read sender from magic envelope and fetch key 2016-02-13 22:47:58 +01:00
Benjamin Neff
744e194b90 add EncryptedMagicEnvelope
This is a simpler replacement for the EncryptedSlap
2016-02-13 20:34:09 +01:00
Benjamin Neff
160da072b6 add key_id to magic envelope 2016-02-13 20:34:09 +01:00
Benjamin Neff
19621fecdf use different key for envelope and header 2016-02-13 20:34:08 +01:00
Benjamin Neff
3fc259878b add an integration-test for a comment entity (relayables) 2016-02-13 01:59:18 +01:00
Benjamin Neff
c96369b36e add alias functionality to entities
* add diaspora_id alias to Person and Profile for Discovery
* also diaspora_id for AccountDeletion
2016-02-12 03:26:33 +01:00
Benjamin Neff
5ebda543a1 change diaspora_id to author
see #29
2016-02-10 03:17:10 +01:00
Benjamin Neff
1c2e2f560d Request: rename sender_id to diaspora_id
See #29
2016-02-06 21:19:09 +01:00
Benjamin Neff
5ce71f57d6 allow unwrapped XMLs 2016-02-06 03:10:48 +01:00
Benjamin Neff
76f6929668 add unknown xml elements to the xml again 2016-02-06 02:35:26 +01:00
Benjamin Neff
98ff8cbae0 add new (alphabetic) signature logic 2016-02-06 01:36:27 +01:00
Benjamin Neff
1c7a5ad3e6 add additional parsed xml properties to the entity-instance
allow mapping with `name` and `xml_name`
2016-02-05 21:13:30 +01:00
Benjamin Neff
cf5da6e1ab move guid and diaspora_id to Relayable 2016-02-03 01:59:14 +01:00
Benjamin Neff
eb486b2a18 improve dummy app callbacks 2016-02-03 00:47:21 +01:00
Benjamin Neff
cfbf401585 static legacy signature order 2016-02-02 03:02:44 +01:00
Benjamin Neff
b19e1b8e52 move signing logic for relayables to Relayable
refactoring exceptions for relayables
2016-01-31 20:22:51 +01:00
Benjamin Neff
714f6d8273 create own sign-logic for SignedRetraction and RelayableRetraction
this is a small code-duplication, but will be removed when
SignedRetraction and RelayableRetraction will be removed.
2016-01-31 15:29:41 +01:00
Benjamin Neff
f4f25e8663 add status to the update_pod callback 2016-01-30 18:28:37 +01:00
Benjamin Neff
530b534c42 Merge branch 'master' into develop 2016-01-23 03:01:00 +01:00
Benjamin Neff
c4970332eb set locale=en to fix locale leakage from other requests 2016-01-23 02:32:41 +01:00
Benjamin Neff
08ecfca5d3 rename target_type to parent_type in relayables
this is equivalent to parent_guid and parent_author_signature

also added a validator for parent_type
2016-01-22 01:05:42 +01:00
Benjamin Neff
8bd9c28ce0 override to_h to sign relayables 2016-01-21 23:40:36 +01:00
Benjamin Neff
1aead0ac5b refactoring RelayableRetraction and SignedRetraction signing 2016-01-21 05:27:48 +01:00
Benjamin Neff
adf14283e3 refactoring relayable signature-checking
verify signature after creating the entity instance
2016-01-21 05:27:48 +01:00
Benjamin Neff
583d567d67 bump rubocop and pronto-rubocop
make some refactorings for new cops
2016-01-19 01:32:22 +01:00
Benjamin Neff
b39582f754 write tests for Sender and HydraWrapper 2016-01-17 21:16:18 +01:00
Benjamin Neff
a0398430ed refactor encrypted slap to reuse it for every recipient 2016-01-14 03:46:01 +01:00
Benjamin Neff
c7f33d7cf4 rename 'pkey' to 'privkey' and 'pubkey' 2016-01-13 02:20:49 +01:00
Benjamin Neff
aa84c4c40e move Receiver to Federation module 2016-01-11 02:30:32 +01:00
Benjamin Neff
0917fc2f19 allow photo.status_message_guid to be nil 2016-01-10 19:05:54 +01:00
Benjamin Neff
cf45416344 allow guid to be nilable 2016-01-10 18:55:32 +01:00
Benjamin Neff
127b603558 return 202 after receive 2015-12-30 03:45:18 +01:00
Benjamin Neff
7ed848c2f5 add ostatus subscribe-url to webfinger 2015-12-27 22:19:58 +01:00
Benjamin Neff
9f67cade7e fix factories with spring 2015-12-27 22:19:58 +01:00
cmrd Senya
a0545c37de Allow parent entity types different than "Post"
Entities::Message requires "Conversation" at the place, for instance.
2015-12-21 14:05:42 +03:00
Benjamin Neff
358e844772 cleanup for rubocop 2015-12-19 17:31:53 +01:00
Benjamin Neff
35429d105b write tests for unescape 2015-12-19 17:15:52 +01:00
Benjamin Neff
c7446f7220 refactor receive classes 2015-12-18 00:42:41 +01:00
Benjamin Neff
4dc34b54e3 enable routes for receive 2015-12-18 00:14:03 +01:00
Benjamin Neff
b56c1e2d04 send xml to callbacks to queue it for receive 2015-12-18 00:11:32 +01:00
cmrd Senya
5aac8c2423 Receiving entities support 2015-12-15 19:06:51 +03:00
cmrd Senya
6615e67d80 Enable persistance file for rspec 2015-12-14 11:00:28 +03:00
Benjamin Neff
73fab4d01c add more documentation 2015-12-13 01:22:17 +01:00
cmrd Senya
91376a3e26 Retractions signatures support 2015-12-03 00:15:32 +03:00
Benjamin Neff
06695610dd write tests to have 100% coverage again 2015-11-30 00:28:20 +01:00
Benjamin Neff
9d999918e5 make entities more consistent 2015-11-29 23:50:44 +01:00
cmrd Senya
64608e7869 Introduce diaspora_federation-test gem 2015-11-23 23:58:28 +03:00
cmrd Senya
91c3753019 Add signature computation for entities support 2015-11-22 23:40:46 +03:00
cmrd Senya
b9b5ee6f7d Do the same generalization for Relayable for validators taking
into account that "author_signature" and "parent_author_signature"
are allowed to be empty, actually.
2015-11-13 17:44:45 +03:00
cmrd Senya
fd1f896d17 Introduce the "Relayable" entity, which encapsulates common
properties of entities that are inherited from Relayable class
in the Diaspora source code - "parent_guid",
"parent_author_signature", "author_signature".
2015-11-13 16:43:36 +03:00
cmrd Senya
9fd2b048e6 Fixes that in the XmlPaylod rspec ".entity_class_name" was mistakenly
put inside the ".unpack" section
2015-11-11 17:07:20 +03:00
cmrd Senya
148300b329 Partly replace hard-coded hashes in specs with FactoryGirl.attributes_for 2015-11-07 15:58:47 +03:00
cmrd Senya
c9e641f3c5 Adding initialize_with to FactoryGirl config in previous commit allowed
to call FactoryGirl.build for entities, so use it wherever possible.
2015-11-07 15:58:47 +03:00
cmrd Senya
e8fa25c6a6 Add the Poll entity 2015-11-07 15:58:30 +03:00
cmrd Senya
b8b52fc60d - New and older specs adjustments;
- Move the specs to use FactoryGirl;
- Replace use of "context" in specs with "describe".
2015-11-06 01:51:20 +03:00
cmrd Senya
f12a4c21db Merge all the entities left from the @Raven24's gem.
These are: AccountDeletion, Comment, Conversation, Like, Message,
RelayableRetraction, Reshare, Retraction, SignedRetraction
2015-11-06 01:50:04 +03:00
cmrd Senya
761534f13c DRY specs more by introducing "a property with data-types restriction" shared behavior 2015-11-05 17:27:31 +03:00
cmrd Senya
9391d4b9eb Reduce the entity stubs initialization calls to a single entity_stub
to make the code more DRY
2015-11-03 01:23:10 +03:00
cmrd Senya
9cb6fe4d1b Some more code merged from the @Raven24's gem. The code is
related to the request, status_message, participation, photo and
location entities, its validators and tests for all of the things.
2015-11-03 00:39:30 +03:00
Benjamin Neff
d5041912f3 refactored shared_entity_specs.rb 2015-10-28 03:04:17 +01:00
Benjamin Neff
42e994e01e use xml_name when parsing an entity 2015-10-28 02:53:17 +01:00
Benjamin Neff
7f731e9af0 refactor salmon stuff
* fix rubocop issues
* remove duplicate code
* use `describe` in specs for methods
2015-10-26 23:50:31 +01:00
Benjamin Neff
1a3ba7e0fd Merge branch 'salmon' of github.com:SuperTux88/diaspora_federation into salmon 2015-10-25 01:22:17 +02:00
Benjamin Neff
60cf4ca64f refactoring AES part and add specs 2015-10-25 01:21:42 +02:00
cmrd Senya
79db753124 Add the request entity from the @Raven24's gem. 2015-10-24 15:43:20 +03:00
cmrd Senya
1801de3b52 Add StatusMessage related entities from the @Raven24's gem.
This makes the testbed pass with this gem.
2015-10-23 23:25:02 +03:00
Benjamin Neff
0848ada216 add more shared examples 2015-09-27 03:17:45 +02:00
Benjamin Neff
5a81d38e60 add salmon-classes (+tests) from raven24's gem
and do some basic refactorings for rubocop
2015-09-26 01:51:27 +02:00
Benjamin Neff
778a782c76 add exceptions for salmon stuff and move all to one file 2015-09-25 23:32:10 +02:00
Benjamin Neff
6838391cc9 refactored Entity.entity_name and XmlPayload.entity_class_name
write tests and simplified regexes.
2015-09-25 02:37:22 +02:00
Benjamin Neff
eb707c2592 add xml_payload (+tests) from raven24's gem
and do some basic refactorings for rubocop
2015-09-25 00:41:34 +02:00
Benjamin Neff
eabe1135ee fix some rubocop warnings
the last one will be fixed with the next rubocop release
2015-09-21 00:50:09 +02:00
Benjamin Neff
2f6acc8367 fix friendica parsing with acct URIs in aliases 2015-09-17 02:11:18 +02:00
Benjamin Neff
b748b255f1 add more specs again for optional urls 2015-09-16 03:01:46 +02:00
Benjamin Neff
c3e290465f make alias and salmon-url optional to support redmatrix 2015-09-16 02:53:44 +02:00
Benjamin Neff
b114973785 remove type constraint in host-meta to support friendica/redmatrix again 2015-09-16 02:08:33 +02:00
Benjamin Neff
4c9eac4699 remove unused nilable_uri rule (default uri rule is now nilable)
also use length rule instead of regex
2015-08-11 00:50:47 +02:00
Benjamin Neff
ad82caffda refactoring: fix some rubocop issues 2015-08-10 01:38:15 +02:00
Benjamin Neff
cb9b754faa allow certificate_authorities to be missing in test/development environment 2015-08-10 01:11:51 +02:00
Benjamin Neff
8c63655886 allow nil for diaspora_id in profile
refactor some tests
2015-08-06 02:21:49 +02:00
Benjamin Neff
311d6948e5 save person after fetch 2015-08-04 03:00:55 +02:00
Benjamin Neff
f4066f6105 rename callbacks 2015-08-04 02:09:14 +02:00
Benjamin Neff
7b3e6ad0c7 remove quotes from alias-url from old webfinger xml 2015-08-01 01:20:02 +02:00
Benjamin Neff
4dd7dd7c71 whitelist codeclimate.com in webmock so test coverage can be reported 2015-07-29 02:01:20 +02:00
Benjamin Neff
2b8aad766d add entities tests and shared examples for entities 2015-07-29 01:48:50 +02:00
Benjamin Neff
fe704fb981 add webfinger and hcard validators 2015-07-28 02:06:46 +02:00
Benjamin Neff
c15fee279c extend profile validator 2015-07-28 02:06:46 +02:00
Benjamin Neff
416f322cc7 rename new URI validator to NilableURI and extend existing URI validator 2015-07-28 00:40:04 +02:00
Benjamin Neff
c1e700d560 add own URI validation rule that allows nil 2015-07-27 03:47:56 +02:00
Benjamin Neff
d7a5e71ce6 refactor shared examples and use more of them 2015-07-27 01:38:11 +02:00
Benjamin Neff
ce39616265 fix tag count validator 2015-07-25 22:17:52 +02:00
Benjamin Neff
ed52108cc7 validate entities after creation if a validator is defined 2015-07-25 03:23:23 +02:00
Benjamin Neff
71b1d6dc1e add xml_name option to properties_dsl
also:
* only allow symbols as name and xml_name
* use public_send instead of send
2015-07-24 23:42:35 +02:00
Benjamin Neff
0deb74c103 refactor: rename diaspora_handle to diaspora_id
diaspora uses the new wording "diaspora ID" instead of "diaspora handle"
2015-07-23 01:22:23 +02:00
Benjamin Neff
fe3c6b6161 refactor HostMeta 2015-07-22 00:46:57 +02:00
Benjamin Neff
20d4646332 refactoring validation and write more tests 2015-07-21 22:31:37 +02:00
Benjamin Neff
ac8832ee4a add diaspora handle validator and test 2015-07-21 22:31:37 +02:00
Benjamin Neff
bfe1b77c87 use rails logger
and ignore logging for test coverage
2015-07-20 03:43:54 +02:00
Benjamin Neff
5be60f8fe0 load fixtures before tests 2015-07-20 03:43:54 +02:00
Benjamin Neff
2301b1433e add validators from raven24 2015-07-20 03:43:54 +02:00
Benjamin Neff
3a94930dcd add test for Discovery 2015-07-18 23:19:30 +02:00
Benjamin Neff
c65ad965b3 add Person and Profile entity for discovery-data 2015-07-18 23:19:30 +02:00
Benjamin Neff
6d63903e73 set nil if parsing an empty string 2015-07-18 23:19:30 +02:00
Benjamin Neff
94f9fe89c1 parse webfinger without guid and public key 2015-07-18 23:19:30 +02:00
Benjamin Neff
35f0af3c55 don't parse guid from hcard if it is equals to nickname 2015-07-18 23:19:30 +02:00