Files
Swarm/docs/ACTIVITYPUB_TEST_RESULTS_TEMPLATE.md

9.6 KiB

ActivityPub Testing Results Template

Use this template to track your testing progress.

Test Environment

Date: ________________

Test Configuration:

  • Solar Network URL: http://solar.local:5000
  • Mastodon URL: http://mastodon.local:3001
  • Database: dyson_network

Solar Network User:

  • Username: _______________
  • Publisher ID: _______________

Mastodon User:

  • Username: testuser@mastodon.local
  • Password: TestPassword123!

Test Results

Part 1: Infrastructure Setup

Test Status Notes
Setup script ran successfully ☐ ☑
/etc/hosts updated ☐ ☑
Docker containers started ☐ ☑
Mastodon web accessible ☐ ☑
Mastodon admin account created ☐ ☑
Database migrations applied ☐ ☑
Solar Network started ☐ ☑

Part 2: WebFinger & Actor Discovery

Test Status Expected Actual
WebFinger for Solar Network user ☐ ☑ Returns subject + links _______________
Actor profile JSON is valid ☐ ☑ Has id, type, inbox, outbox _______________
Public key present in actor ☐ ☑ publicKey.publicKeyPem exists _______________
Outbox returns public posts ☐ ☑ OrderedCollection with items _______________
Outbox totalItems count ☐ ☑ Matches public posts _______________

Part 3: Follow Relationships

Test Status Expected Result Actual Result
Mastodon follows Solar Network user ☐ ☑ Relationship created in DB _______________
Accept sent to Mastodon ☐ ☑ Mastodon receives Accept _______________
Solar Network follows Mastodon user ☐ ☑ Relationship created _______________
Follow appears in Mastodon UI ☐ ☑ Mastodon shows "Following" _______________
Follow appears in Solar Network DB ☐ ☑ is_following = true _______________
Follow state is Accepted ☐ ☑ state = 1 (Accepted) _______________
Unfollow works correctly ☐ ☑ Relationship deleted/updated _______________

Part 4: Content Federation (Create)

Test Status Expected Result Actual Result
Post created in Solar Network ☐ ☑ Post in sn_posts table _______________
Activity sent to Mastodon ☐ ☑ Logged as successful _______________
Post appears in Mastodon timeline ☐ ☑ Visible in federated timeline _______________
Post content matches ☐ ☑ Same text/HTML _______________
Post author is correct ☐ ☑ Shows Solar Network user _______________
Post timestamp is correct ☐ ☑ Same published time _______________
Multiple posts federate ☐ ☑ All posts appear _______________

Part 5: Content Reception (Incoming Create)

Test Status Expected Result Actual Result
Create activity received ☐ ☑ Activity logged in DB _______________
Content stored in fediverse_contents ☐ ☑ Record with correct type _______________
Content not duplicated ☐ ☑ Only one entry per URI _______________
Actor created/retrieved ☐ ☑ Actor in fediverse_actors _______________
Instance created/retrieved ☐ ☑ Instance in fediverse_instances _______________
Content HTML preserved ☐ ☑ contentHtml field populated _______________

Part 6: Reaction Federation (Like)

Test Status Expected Result Actual Result
Like from Mastodon to Solar post ☐ ☑ Like activity received _______________
Reaction stored in fediverse_reactions ☐ ☑ Record with type = 0 (Like) _______________
Like count incremented ☐ ☑ like_count increased _______________
Like appears in UI ☐ ☑ Visible on Solar Network _______________
Like appears in Mastodon ☐ ☑ Visible on Mastodon _______________
Unlike works correctly ☐ ☑ Like removed _______________

Part 7: Reply Federation

Test Status Expected Result Actual Result
Reply from Mastodon to Solar post ☐ ☑ Create activity with inReplyTo _______________
Reply stored with parent reference ☐ ☑ in_reply_to field set _______________
Reply appears in Solar Network ☐ ☑ Visible as comment _______________
Reply shows parent context ☐ ☑ Links to original post _______________

Part 8: Content Deletion

Test Status Expected Result Actual Result
Delete from Mastodon ☐ ☑ Delete activity received _______________
Content soft-deleted ☐ ☑ deleted_at timestamp set _______________
Content no longer visible ☐ ☑ Hidden from timelines _______________

Part 9: HTTP Signature Verification

Test Status Expected Result Actual Result
Valid signature accepted ☐ ☑ Activity processed _______________
Invalid signature rejected ☐ ☑ 401 Unauthorized _______________
Missing signature rejected ☐ ☑ 401 Unauthorized _______________
Signature format correct ☐ ☑ keyId, algorithm, headers, signature _______________
Signing string correct ☐ ☑ Matches HTTP-Signatures draft _______________

Part 10: Error Handling

Test Status Expected Result Actual Result
Invalid activity type rejected ☐ ☑ 400 Bad Request _______________
Malformed JSON rejected ☐ ☑ 400 Bad Request _______________
Non-existent actor rejected ☐ ☑ 404 Not Found _______________
Errors logged correctly ☐ ☑ error_message populated _______________
Activity status = Failed ☐ ☑ status = 3 _______________

Database State After Tests

Actors Table

SELECT COUNT(*) as total_actors,
       SUM(CASE WHEN is_local_actor THEN 1 ELSE 0 END) as local,
       SUM(CASE WHEN NOT is_local_actor THEN 1 ELSE 0 END) as remote
FROM fediverse_relationships;
  • Total Actors: _______________
  • Local Actors: _______________
  • Remote Actors: _______________

Contents Table

SELECT COUNT(*) as total_contents,
       AVG(LENGTH(content)) as avg_content_length
FROM fediverse_contents WHERE deleted_at IS NULL;
  • Total Contents: _______________
  • Avg Content Length: _______________

Activities Table

SELECT type, status, COUNT(*)
FROM fediverse_activities
GROUP BY type, status
ORDER BY type, status;
  • Activities by Type/Status:
    • Create: Pending ___, Completed ____, Failed ___
    • Follow: Pending ___, Completed ____, Failed ___
    • Like: Pending ___, Completed ____, Failed ___
    • Accept: Pending ___, Completed ____, Failed ___

Relationships Table

SELECT state, COUNT(*) as count
FROM fediverse_relationships
GROUP BY state;
  • Pending: _______________
  • Accepted: _______________
  • Rejected: _______________

Logs Analysis

Solar Network Errors Found:




Mastodon Errors Found:




Warnings Found:





Issues & Bugs Found

# Severity Description Status
1 ☐ Low/Medium/High/Critical _____________________ ☐ Open/☐ Fixed
2 ☐ Low/Medium/High/Critical _____________________ ☐ Open/☐ Fixed
3 ☐ Low/Medium/High/Critical _____________________ ☐ Open/☐ Fixed
4 ☐ Low/Medium/High/Critical _____________________ ☐ Open/☐ Fixed

Performance Notes

Metric Value Notes
Average activity processing time __________ ms
Average HTTP signature verification time __________ ms
Outgoing delivery success rate __________%
Average WebFinger response time __________ ms
Database query performance __________

Compatibility Notes

Instance Version Works Notes
Mastodon (self-hosted) latest ☐ ☑
Mastodon.social ~4.0 ☐ ☑
Pleroma ~2.5 ☐ ☑
GoToSocial ~0.15 ☐ ☑

Recommendations

What Worked Well:




What Needs Improvement:




Features to Add:





Next Testing Phase

  • Test with public Mastodon instance
  • Test with Pleroma instance
  • Test media attachment federation
  • Test with high-volume posts
  • Test concurrent activity processing
  • Test with different visibility levels
  • Test with long posts (>500 chars)
  • Test with special characters/emojis

Sign-off

Tested By: _____________________

Test Date: _____________________

Overall Result: ☐ Pass / ☐ Fail

Ready for Production: ☐ Yes / ☐ No

Notes: ___________________________________________________________________________