public void CookieTokenizer_MultiCookieResponse_Parsed() { Response response = new Response(System.Net.HttpStatusCode.OK, ""); response.Headers.Add("Set-Cookie", new List <string> { "test_name=test_value; HttpOnly", "test_name2=test_value2; SameSite=Strict", "test_name3=test_value3; SameSite=Strict; HttpOnly" }); CookieTokenizer tokenizer = new CookieTokenizer(); TokenCollection tokens = tokenizer.ExtractTokens(response); Assert.Equal(3, tokens.Count()); IToken token = tokens.GetByName("test_name")[0]; Assert.Equal("test_name", token.Name); Assert.Equal("test_value", token.Value); token = tokens.GetByName("test_name2")[0]; Assert.Equal("test_name2", token.Name); Assert.Equal("test_value2", token.Value); token = tokens.GetByName("test_name3")[0]; Assert.Equal("test_name3", token.Name); Assert.Equal("test_value3", token.Value); }
public void CookieTokenizer_SimpleCookieRequest_Parsed() { Request request = new Request(new Uri("http://test.com"), HttpMethod.Get); request.Content = ""; List <String> cookieHeaderVals = new List <string> { "test1=test2;test3=test4" }; request.Headers.Add("Cookie", cookieHeaderVals); CookieTokenizer tokenizer = new CookieTokenizer(); TokenCollection tokens = tokenizer.ExtractTokens(request); Assert.Equal(2, tokens.Count()); IToken token = tokens.GetByName("test1")[0]; Assert.Equal("test1", token.Name); Assert.Equal("test2", token.Value); token = tokens.GetByName("test3")[0]; Assert.Equal("test3", token.Name); Assert.Equal("test4", token.Value); }
public void JsonTokenizer_SimpleJson_Tokenized() { Request addItemToCart = new Request(new Uri(@"http://localhost/api/BasketItems/"), HttpMethod.Post); addItemToCart.Content = "{\"ProductId\":24,\"BasketId\":\"7\",\"quantity\":1}"; List <IRequestTokenizer> request_tokenizers = new List <IRequestTokenizer>(); request_tokenizers.Add(new JsonTokenizer()); TokenCollection tokens = addItemToCart.GetRequirements(request_tokenizers); Assert.Equal(3, tokens.Count()); IToken token = tokens.GetByName("ProductId")[0]; Assert.Equal("24", token.Value); Assert.Equal(Types.Integer, token.SupportedTypes); token = tokens.GetByName("BasketId")[0]; Assert.Equal("7", token.Value); Assert.Equal(Types.Integer | Types.String, token.SupportedTypes); token = tokens.GetByName("quantity")[0]; Assert.Equal("1", token.Value); Assert.Equal(Types.Integer, token.SupportedTypes); }
public void Request_ExtractJsonRequirements_ExpectedValues() { Request addItemToCart = new Request(new Uri(@"http://localhost/api/BasketItems/"), HttpMethod.Post); addItemToCart.Content = "{\"ProductId\":24,\"BasketId\":\"7\",\"quantity\":1}"; List <IRequestTokenizer> request_tokenizers = new List <IRequestTokenizer>(); request_tokenizers.Add(new JsonTokenizer()); TokenCollection requirements = addItemToCart.GetRequirements(request_tokenizers); List <IToken> product_id = requirements.GetByName("ProductId"); Assert.Single(product_id); Assert.Equal("ProductId", product_id[0].Name); Assert.Equal(Types.Integer, product_id[0].SupportedTypes); List <IToken> basket_id = requirements.GetByName("BasketId"); Assert.Single(basket_id); Assert.Equal("BasketId", basket_id[0].Name); Assert.Equal(Types.Integer | Types.String, basket_id[0].SupportedTypes); List <IToken> quantity = requirements.GetByName("quantity"); Assert.Single(quantity); Assert.Equal("quantity", quantity[0].Name); Assert.Equal(Types.Integer, quantity[0].SupportedTypes); }
public void Request_ConstantSubstitution_ExpectedValue() { Request request = new Request(new Uri(@"http://localhost/rest/user/login/"), HttpMethod.Get); request.Content = "{ \"email\":\"[email protected]\",\"password\":\"123456\"}"; IRequestTokenizer tokenizer = new JsonTokenizer(); TokenCollection tokens = tokenizer.ExtractTokens(request); List <IToken> email = tokens.GetByName("email"); Assert.Single(email); ISubstitution substitution = new SubstituteConstant(email[0], "*****@*****.**"); substitution.MakeSubstitution(null, request); tokens = tokenizer.ExtractTokens(request); email = tokens.GetByName("email"); Assert.Equal("*****@*****.**", email[0].Value); }
public IToken?FindClosestEquivalent(TokenCollection tokens) { List <IToken> matches = tokens.GetByName(this.Name); if (matches.Count > 1) { Console.WriteLine("WARNING: Multiple query tokens with the same name. This probably shouldn't happen."); } if (matches.Count >= 1) { return(matches[0]); } return(null); }
public void BearerToken_RequestHeaders_TokenReplaced() { Request initializeCart = new Request(new Uri(@"http://localhost/api/BasketItems/"), HttpMethod.Post); initializeCart.Content = "{\"ProductId\":24,\"BasketId\":\"20\",\"quantity\":1}"; initializeCart.Headers.Add("Authorization", new List <string> { $"Bearer {BearerExample}" }); BearerTokenizer tokenizer = new BearerTokenizer(); TokenCollection tokens = tokenizer.ExtractTokens(initializeCart); List <IToken> match = tokens.GetByName("BearerToken"); Assert.Single(match); match[0].ReplaceValue(initializeCart, "testresult"); Assert.Equal("Bearer testresult", initializeCart.Headers["Authorization"][0]); }