Skip to content

Commit 3ed4386

Browse files
yojagadSid Krishna
authored andcommitted
Fixed ExtensionsController PUT request (#7270)
Fixed Route for Put(admin/host/extensions)
1 parent a7ee1f9 commit 3ed4386

File tree

2 files changed

+32
-3
lines changed

2 files changed

+32
-3
lines changed

src/WebJobs.Script.WebHost/Controllers/ExtensionsController.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@ public async Task<IActionResult> Get()
5757

5858
[HttpPost]
5959
[Route("admin/host/extensions")]
60-
public Task<IActionResult> Post([FromBody]ExtensionPackageReferenceWithActions package) => InstallExtension(package);
60+
public Task<IActionResult> Post([FromBody] ExtensionPackageReferenceWithActions package) => InstallExtension(package);
6161

62-
[HttpPut("{id}")]
62+
[HttpPut]
6363
[Route("admin/host/extensions")]
64-
public Task<IActionResult> Put(int id, [FromBody]ExtensionPackageReferenceWithActions package) => InstallExtension(package);
64+
public Task<IActionResult> Put([FromBody]ExtensionPackageReferenceWithActions package) => InstallExtension(package);
6565

6666
[HttpDelete]
6767
[Route("admin/host/extensions/{id}")]

test/WebJobs.Script.Tests.Integration/WebHostEndToEnd/SamplesEndToEndTests_CSharp.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
using Newtonsoft.Json;
2727
using Newtonsoft.Json.Linq;
2828
using Xunit;
29+
using Microsoft.Azure.WebJobs.Script.Models;
2930

3031
namespace Microsoft.Azure.WebJobs.Script.Tests.EndToEnd
3132
{
@@ -97,6 +98,34 @@ public async Task HostPing_Succeeds(string method)
9798
Assert.Equal("no-store, no-cache", cacheHeader);
9899
}
99100

101+
[Fact]
102+
public async Task InstallExtensionsEnsureOldPathReturns404()
103+
{
104+
ExtensionPackageReferenceWithActions body = new ExtensionPackageReferenceWithActions();
105+
var jsonBody = JsonConvert.SerializeObject(body);
106+
var content = new StringContent(jsonBody, Encoding.UTF8, "application/json");
107+
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, "123");
108+
request.Headers.Add(AuthenticationLevelHandler.FunctionsKeyHeaderName, _fixture.MasterKey);
109+
request.Content = content;
110+
HttpResponseMessage response = await _fixture.Host.HttpClient.SendAsync(request);
111+
112+
Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
113+
}
114+
115+
[Fact]
116+
public async Task InstallExtensionTest()
117+
{
118+
ExtensionPackageReferenceWithActions body = new ExtensionPackageReferenceWithActions();
119+
var jsonBody = JsonConvert.SerializeObject(body);
120+
var content = new StringContent(jsonBody, Encoding.UTF8, "application/json");
121+
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, "admin/host/extensions");
122+
request.Headers.Add(AuthenticationLevelHandler.FunctionsKeyHeaderName, _fixture.MasterKey);
123+
request.Content = content;
124+
HttpResponseMessage response = await _fixture.Host.HttpClient.SendAsync(request);
125+
126+
Assert.Equal(HttpStatusCode.Accepted, response.StatusCode);
127+
}
128+
100129
[Fact]
101130
public async Task ArmExtensionsResourceFilter_NonExtensionRoute_Succeeds()
102131
{

0 commit comments

Comments
 (0)