/ components / ingress / pkg / proxy / host_route_parse_test.go
host_route_parse_test.go
 1  // Copyright 2026 Alibaba Group Holding Ltd.
 2  //
 3  // Licensed under the Apache License, Version 2.0 (the "License");
 4  // you may not use this file except in compliance with the License.
 5  // You may obtain a copy of the License at
 6  //
 7  //     http://www.apache.org/licenses/LICENSE-2.0
 8  //
 9  // Unless required by applicable law or agreed to in writing, software
10  // distributed under the License is distributed on an "AS IS" BASIS,
11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  // See the License for the specific language governing permissions and
13  // limitations under the License.
14  
15  package proxy
16  
17  import (
18  	"testing"
19  
20  	"github.com/stretchr/testify/assert"
21  )
22  
23  func TestParseURIRoute_TwoSegmentsNoSignature(t *testing.T) {
24  	pr, err := parseURIRoute("/my-sandbox/8080")
25  	assert.NoError(t, err)
26  	assert.Equal(t, "my-sandbox", pr.sandboxID)
27  	assert.Equal(t, 8080, pr.port)
28  	assert.Equal(t, "", pr.signature)
29  	assert.Equal(t, "/", pr.requestURI)
30  	assert.False(t, pr.uriParsedAsOSEP)
31  }
32  
33  func TestParseURIRoute_LegacyLeadingZeroPortRejected(t *testing.T) {
34  	_, err := parseURIRoute("/sb/08080")
35  	assert.Error(t, err)
36  }
37  
38  func TestParseURIRoute_OSEPFourSegmentsWithSig(t *testing.T) {
39  	exp, sig := "1a2b3c", "01234567a"
40  	pr, err := parseURIRoute("/sb/9090/" + exp + "/" + sig + "/extra/path")
41  	assert.NoError(t, err)
42  	assert.Equal(t, "sb", pr.sandboxID)
43  	assert.Equal(t, 9090, pr.port)
44  	assert.Equal(t, exp, pr.expiresB36)
45  	assert.Equal(t, sig, pr.signature)
46  	assert.Equal(t, "/extra/path", pr.requestURI)
47  	assert.True(t, pr.uriParsedAsOSEP)
48  }