mirror of https://github.com/v2ray/v2ray-core
				
				
				
			more json test cases
							parent
							
								
									be57f48bb3
								
							
						
					
					
						commit
						c74bcc9c50
					
				| 
						 | 
					@ -35,3 +35,12 @@ func TestDomainParsing(t *testing.T) {
 | 
				
			||||||
	assert.Bool(address.Address.IsDomain()).IsTrue()
 | 
						assert.Bool(address.Address.IsDomain()).IsTrue()
 | 
				
			||||||
	assert.StringLiteral(address.Address.Domain()).Equals("v2ray.com")
 | 
						assert.StringLiteral(address.Address.Domain()).Equals("v2ray.com")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestInvalidJson(t *testing.T) {
 | 
				
			||||||
 | 
						v2testing.Current(t)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						rawJson := "1234"
 | 
				
			||||||
 | 
						var address AddressJson
 | 
				
			||||||
 | 
						err := json.Unmarshal([]byte(rawJson), &address)
 | 
				
			||||||
 | 
						assert.Error(err).IsNotNil()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,3 +30,11 @@ func TestStringNetworkList(t *testing.T) {
 | 
				
			||||||
	assert.Bool(list.HasNetwork(Network("tcp"))).IsTrue()
 | 
						assert.Bool(list.HasNetwork(Network("tcp"))).IsTrue()
 | 
				
			||||||
	assert.Bool(list.HasNetwork(Network("udp"))).IsFalse()
 | 
						assert.Bool(list.HasNetwork(Network("udp"))).IsFalse()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestInvalidJson(t *testing.T) {
 | 
				
			||||||
 | 
						v2testing.Current(t)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var list NetworkList
 | 
				
			||||||
 | 
						err := json.Unmarshal([]byte("0"), &list)
 | 
				
			||||||
 | 
						assert.Error(err).IsNotNil()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,43 @@
 | 
				
			||||||
 | 
					// +build json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package protocol_test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"encoding/json"
 | 
				
			||||||
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						. "github.com/v2ray/v2ray-core/common/protocol"
 | 
				
			||||||
 | 
						v2testing "github.com/v2ray/v2ray-core/testing"
 | 
				
			||||||
 | 
						"github.com/v2ray/v2ray-core/testing/assert"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestUserParsing(t *testing.T) {
 | 
				
			||||||
 | 
						v2testing.Current(t)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						user := new(User)
 | 
				
			||||||
 | 
						err := json.Unmarshal([]byte(`{
 | 
				
			||||||
 | 
					    "id": "96edb838-6d68-42ef-a933-25f7ac3a9d09",
 | 
				
			||||||
 | 
					    "email": "love@v2ray.com",
 | 
				
			||||||
 | 
					    "level": 1,
 | 
				
			||||||
 | 
					    "alterId": 100
 | 
				
			||||||
 | 
					  }`), user)
 | 
				
			||||||
 | 
						assert.Error(err).IsNil()
 | 
				
			||||||
 | 
						assert.String(user.ID).Equals("96edb838-6d68-42ef-a933-25f7ac3a9d09")
 | 
				
			||||||
 | 
						assert.Byte(byte(user.Level)).Equals(1)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestInvalidUserJson(t *testing.T) {
 | 
				
			||||||
 | 
						v2testing.Current(t)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						user := new(User)
 | 
				
			||||||
 | 
						err := json.Unmarshal([]byte(`{"id": 1234}`), user)
 | 
				
			||||||
 | 
						assert.Error(err).IsNotNil()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestInvalidIdJson(t *testing.T) {
 | 
				
			||||||
 | 
						v2testing.Current(t)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						user := new(User)
 | 
				
			||||||
 | 
						err := json.Unmarshal([]byte(`{"id": "1234"}`), user)
 | 
				
			||||||
 | 
						assert.Error(err).IsNotNil()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -95,6 +95,14 @@ func (this *InboundDetourAllocationConfig) UnmarshalJSON(data []byte) error {
 | 
				
			||||||
	this.Strategy = jsonConfig.Strategy
 | 
						this.Strategy = jsonConfig.Strategy
 | 
				
			||||||
	this.Concurrency = jsonConfig.Concurrency
 | 
						this.Concurrency = jsonConfig.Concurrency
 | 
				
			||||||
	this.Refresh = jsonConfig.RefreshMin
 | 
						this.Refresh = jsonConfig.RefreshMin
 | 
				
			||||||
 | 
						if this.Strategy == AllocationStrategyRandom {
 | 
				
			||||||
 | 
							if this.Refresh == 0 {
 | 
				
			||||||
 | 
								this.Refresh = 5
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if this.Concurrency == 0 {
 | 
				
			||||||
 | 
								this.Concurrency = 3
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	if this.Refresh == 0 {
 | 
						if this.Refresh == 0 {
 | 
				
			||||||
		this.Refresh = DefaultRefreshMinute
 | 
							this.Refresh = DefaultRefreshMinute
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -128,14 +136,6 @@ func (this *InboundDetourConfig) UnmarshalJSON(data []byte) error {
 | 
				
			||||||
			Refresh:  DefaultRefreshMinute,
 | 
								Refresh:  DefaultRefreshMinute,
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if this.Allocation.Strategy == AllocationStrategyRandom {
 | 
					 | 
				
			||||||
		if this.Allocation.Refresh == DefaultRefreshMinute {
 | 
					 | 
				
			||||||
			this.Allocation.Refresh = 5
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if this.Allocation.Concurrency == 0 {
 | 
					 | 
				
			||||||
			this.Allocation.Concurrency = 3
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue