summaryrefslogtreecommitdiff
path: root/internal/processing/processor_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/processing/processor_test.go')
-rw-r--r--internal/processing/processor_test.go126
1 files changed, 3 insertions, 123 deletions
diff --git a/internal/processing/processor_test.go b/internal/processing/processor_test.go
index 7032f8e28..c60ff5c97 100644
--- a/internal/processing/processor_test.go
+++ b/internal/processing/processor_test.go
@@ -19,16 +19,8 @@
package processing_test
import (
- "bytes"
- "context"
- "encoding/json"
- "io"
- "io/ioutil"
- "net/http"
-
"codeberg.org/gruf/go-store/kv"
"github.com/stretchr/testify/suite"
- "github.com/superseriousbusiness/activity/streams"
"github.com/superseriousbusiness/gotosocial/internal/concurrency"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/email"
@@ -50,6 +42,7 @@ type ProcessingStandardTestSuite struct {
storage *kv.KVStore
mediaManager media.Manager
typeconverter typeutils.TypeConverter
+ httpClient *testrig.MockHTTPClient
transportController transport.Controller
federator federation.Federator
oauthServer oauth.Server
@@ -69,8 +62,6 @@ type ProcessingStandardTestSuite struct {
testBlocks map[string]*gtsmodel.Block
testActivities map[string]testrig.ActivityWithSignature
- sentHTTPRequests map[string][]byte
-
processor processing.Processor
}
@@ -102,123 +93,12 @@ func (suite *ProcessingStandardTestSuite) SetupTest() {
suite.testActivities = testrig.NewTestActivities(suite.testAccounts)
suite.storage = testrig.NewTestStorage()
suite.typeconverter = testrig.NewTestTypeConverter(suite.db)
-
- // make an http client that stores POST requests it receives into a map,
- // and also responds to correctly to dereference requests
- suite.sentHTTPRequests = make(map[string][]byte)
- httpClient := testrig.NewMockHTTPClient(func(req *http.Request) (*http.Response, error) {
- if req.Method == http.MethodPost && req.Body != nil {
- requestBytes, err := ioutil.ReadAll(req.Body)
- if err != nil {
- panic(err)
- }
- if err := req.Body.Close(); err != nil {
- panic(err)
- }
- suite.sentHTTPRequests[req.URL.String()] = requestBytes
- }
-
- if req.URL.String() == suite.testAccounts["remote_account_1"].URI {
- // the request is for remote account 1
- satan := suite.testAccounts["remote_account_1"]
-
- satanAS, err := suite.typeconverter.AccountToAS(context.Background(), satan)
- if err != nil {
- panic(err)
- }
-
- satanI, err := streams.Serialize(satanAS)
- if err != nil {
- panic(err)
- }
- satanJson, err := json.Marshal(satanI)
- if err != nil {
- panic(err)
- }
- responseType := "application/activity+json"
-
- reader := bytes.NewReader(satanJson)
- readCloser := io.NopCloser(reader)
- response := &http.Response{
- StatusCode: 200,
- Body: readCloser,
- ContentLength: int64(len(satanJson)),
- Header: http.Header{
- "content-type": {responseType},
- },
- }
- return response, nil
- }
-
- if req.URL.String() == suite.testAccounts["remote_account_2"].URI {
- // the request is for remote account 2
- someAccount := suite.testAccounts["remote_account_2"]
-
- someAccountAS, err := suite.typeconverter.AccountToAS(context.Background(), someAccount)
- if err != nil {
- panic(err)
- }
-
- someAccountI, err := streams.Serialize(someAccountAS)
- if err != nil {
- panic(err)
- }
- someAccountJson, err := json.Marshal(someAccountI)
- if err != nil {
- panic(err)
- }
- responseType := "application/activity+json"
-
- reader := bytes.NewReader(someAccountJson)
- readCloser := io.NopCloser(reader)
- response := &http.Response{
- StatusCode: 200,
- Body: readCloser,
- ContentLength: int64(len(someAccountJson)),
- Header: http.Header{
- "content-type": {responseType},
- },
- }
- return response, nil
- }
-
- if req.URL.String() == "http://example.org/users/some_user/statuses/afaba698-5740-4e32-a702-af61aa543bc1" {
- // the request is for the forwarded message
- message := suite.testActivities["forwarded_message"].Activity.GetActivityStreamsObject().At(0).GetActivityStreamsNote()
- messageI, err := streams.Serialize(message)
- if err != nil {
- panic(err)
- }
- messageJson, err := json.Marshal(messageI)
- if err != nil {
- panic(err)
- }
- responseType := "application/activity+json"
-
- reader := bytes.NewReader(messageJson)
- readCloser := io.NopCloser(reader)
- response := &http.Response{
- StatusCode: 200,
- Body: readCloser,
- ContentLength: int64(len(messageJson)),
- Header: http.Header{
- "content-type": {responseType},
- },
- }
- return response, nil
- }
-
- r := ioutil.NopCloser(bytes.NewReader([]byte{}))
- return &http.Response{
- StatusCode: 200,
- Body: r,
- }, nil
- })
+ suite.httpClient = testrig.NewMockHTTPClient(nil, "../../testrig/media")
clientWorker := concurrency.NewWorkerPool[messages.FromClientAPI](-1, -1)
fedWorker := concurrency.NewWorkerPool[messages.FromFederator](-1, -1)
- suite.transportController = testrig.NewTestTransportController(httpClient, suite.db, fedWorker)
+ suite.transportController = testrig.NewTestTransportController(suite.httpClient, suite.db, fedWorker)
suite.mediaManager = testrig.NewTestMediaManager(suite.db, suite.storage)
suite.federator = testrig.NewTestFederator(suite.db, suite.transportController, suite.storage, suite.mediaManager, fedWorker)
suite.oauthServer = testrig.NewTestOauthServer(suite.db)