github.com/web-platform-tests/wpt.fyi@v0.0.0-20240530210107-70cf978996f1/shared/appengine_test.go (about) 1 // +build small 2 3 // Copyright 2020 The WPT Dashboard Project. All rights reserved. 4 // Use of this source code is governed by a BSD-style license that can be 5 // found in the LICENSE file. 6 7 package shared 8 9 import ( 10 "net/url" 11 "testing" 12 13 "github.com/stretchr/testify/assert" 14 taskspb "google.golang.org/genproto/googleapis/cloud/tasks/v2" 15 ) 16 17 func TestCreateTaskRequest(t *testing.T) { 18 runtimeIdentityBak := runtimeIdentity 19 defer func() { runtimeIdentity = runtimeIdentityBak }() 20 runtimeIdentity.AppID = "localtest" 21 22 t.Run("us-central", func(t *testing.T) { 23 runtimeIdentity.LocationID = "us-central" 24 params := make(url.Values) 25 params.Set("foo", "bar") 26 taskPrefix, req := createTaskRequest("queue", "task", "/api/endpoint", params) 27 28 expectedReq := &taskspb.CreateTaskRequest{ 29 Parent: "projects/localtest/locations/us-central1/queues/queue", 30 Task: &taskspb.Task{ 31 Name: "projects/localtest/locations/us-central1/queues/queue/tasks/task", 32 MessageType: &taskspb.Task_AppEngineHttpRequest{ 33 AppEngineHttpRequest: &taskspb.AppEngineHttpRequest{ 34 HttpMethod: taskspb.HttpMethod_POST, 35 RelativeUri: "/api/endpoint", 36 Headers: map[string]string{"Content-Type": "application/x-www-form-urlencoded"}, 37 Body: []byte("foo=bar"), 38 }, 39 }, 40 }, 41 } 42 assert.Equal(t, "projects/localtest/locations/us-central1/queues/queue/tasks/", taskPrefix) 43 assert.Equal(t, expectedReq, req) 44 }) 45 46 t.Run("other-location", func(t *testing.T) { 47 runtimeIdentity.LocationID = "other-location" 48 taskPrefix, req := createTaskRequest("queue", "task", "/api/endpoint", nil) 49 50 expectedReq := &taskspb.CreateTaskRequest{ 51 Parent: "projects/localtest/locations/other-location/queues/queue", 52 Task: &taskspb.Task{ 53 Name: "projects/localtest/locations/other-location/queues/queue/tasks/task", 54 MessageType: &taskspb.Task_AppEngineHttpRequest{ 55 AppEngineHttpRequest: &taskspb.AppEngineHttpRequest{ 56 HttpMethod: taskspb.HttpMethod_POST, 57 RelativeUri: "/api/endpoint", 58 Headers: map[string]string{"Content-Type": "application/x-www-form-urlencoded"}, 59 Body: []byte(""), 60 }, 61 }, 62 }, 63 } 64 assert.Equal(t, "projects/localtest/locations/other-location/queues/queue/tasks/", taskPrefix) 65 assert.Equal(t, expectedReq, req) 66 }) 67 68 t.Run("no task name", func(t *testing.T) { 69 runtimeIdentity.LocationID = "other-location" 70 taskPrefix, req := createTaskRequest("queue", "", "/api/endpoint", nil) 71 72 expectedReq := &taskspb.CreateTaskRequest{ 73 Parent: "projects/localtest/locations/other-location/queues/queue", 74 Task: &taskspb.Task{ 75 Name: "", 76 MessageType: &taskspb.Task_AppEngineHttpRequest{ 77 AppEngineHttpRequest: &taskspb.AppEngineHttpRequest{ 78 HttpMethod: taskspb.HttpMethod_POST, 79 RelativeUri: "/api/endpoint", 80 Headers: map[string]string{"Content-Type": "application/x-www-form-urlencoded"}, 81 Body: []byte(""), 82 }, 83 }, 84 }, 85 } 86 assert.Equal(t, "projects/localtest/locations/other-location/queues/queue/tasks/", taskPrefix) 87 assert.Equal(t, expectedReq, req) 88 }) 89 }