content: '@TestSuite [ATST] Requests Query String tests
  
  '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  '@It QueryString
  '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  
  '@Test addString
  '@Params["test=123", [["test", "123"]]]
  '@Params["test=123&foo=bar", [["test", "123"], ["foo", "bar"]]]
  '@Params["test", [["test", ""]]]
  '@Params["=123", [["", "123"]]]
  '@Params["", []]
  function Atst__Test_Requests_QueryString_addString(addString, qs_array) as void
  
      qs = rr_Requests_queryString()
      qs.addString(addString)
      'TODO: fix AssertArrayContainsOnly
      'm.AssertArrayContainsOnly(qs._qs_array, "Array")
      m.EqArrays([qs._qs_array], qs_array)
  
  end function
  
  '@Test addParamKeyValue
  '@Params["test", "123", [["test", "123"]]]
  '@Params["test", "", [["test", ""]]]
  '@Params["", "123", [["", "123"]]]
  '@Params["", "", [["", ""]]]
  function Atst__Test_Requests_QueryString_addParamKeyValue(param, key, qs_array) as void
  
      qs = rr_Requests_queryString()
      qs.addParamKeyValue(param, key)
      'TODO: fix AssertArrayContainsOnly
      'm.AssertArrayContainsOnly(qs._qs_array, "Array")
      m.EqArrays([qs._qs_array], qs_array)
  
  end function
  
  '@Test addParamsAA
  '@Params[{"test": "123"}, [["test", "123"]]]
  '@Params[{"test": "123", "foo": "bar"}, [["test", "123"], ["foo", "bar"]]]
  '@Params[{"test": ""}, [["test", ""]]]
  '@Params[{"": "123"}, [["", "123"]]]
  '@Params[{"": ""}, [["", ""]]]
  function Atst__Test_Requests_QueryString_addParamsAA(params, qs_array) as void
  
      qs = rr_Requests_queryString()
      qs.addParamsAA(params)
      'TODO: fix AssertArrayContainsOnly
      'm.AssertArrayContainsOnly(qs._qs_array, "Array")
      m.EqArrays([qs._qs_array], qs_array)
  
  end function
  
  '@Test addParamsArray
  '@Params[[["test", "123"]], [["test", "123"]]]
  '@Params[[["test", "123"], ["foo", "bar"]], [["test", "123"], ["foo", "bar"]]]
  '@Params[[["test", ""]], [["test", ""]]]
  '@Params[[["", "123"]], [["", "123"]]]
  '@Params[[["", ""]], [["", ""]]]
  '@Params[[["test"]], [["test", ""]]]
  '@Params[[[""]], [["", ""]]]
  '@Params[[], []]
  function Atst__Test_Requests_QueryString_addParamsArray(params, qs_array) as void
  
      qs = rr_Requests_queryString()
      qs.addParamsArray(params)
      'TODO: fix AssertArrayContainsOnly
      'm.AssertArrayContainsOnly(qs._qs_array, "Array")
      m.EqArrays([qs._qs_array], qs_array)
  
  end function
  
  '@Test build
  function Atst__Test_Requests_QueryString_build() as void
  
      qs = rr_Requests_queryString()
      qs.addString("test=123&foo=bar")
      qs.addParamKeyValue("name", "jim")
      qs.addParamsAA({"forcast": "sunny"})
      qs.addParamsArray([["chocolate", "yummy"]])
      'm.AssertArrayContainsOnly(qs._qs_array, "Array")
      built = qs.build()
      m.AssertEqual(built, "test=123&foo=bar&name=jim&forcast=sunny&chocolate=yummy")
  
  end function
  
  '@Test build
  function Atst__Test_Requests_QueryString_append() as void
  
      qs = rr_Requests_queryString()
      qs.addString("test=123&foo=bar")
      qs.addParamKeyValue("name", "jim")
      qs.addParamsAA({"forcast": "sunny"})
      qs.addParamsArray([["chocolate", "yummy"]])
      'm.AssertArrayContainsOnly(qs._qs_array, "Array")
      append = qs.append("google.com")
      m.AssertEqual(append, "google.com?test=123&foo=bar&name=jim&forcast=sunny&chocolate=yummy")
  
      append = qs.append("google.com?")
      m.AssertEqual(append, "google.com?test=123&foo=bar&name=jim&forcast=sunny&chocolate=yummy")
  
      append = qs.append("google.com?id=555")
      m.AssertEqual(append, "google.com?id=555&test=123&foo=bar&name=jim&forcast=sunny&chocolate=yummy")
  
  end function
  
  '@Test build empty
  function Atst__Test_Requests_QueryString_append_empty() as void
  
      qs = rr_Requests_queryString()
      append = qs.append("google.com")
      m.AssertEqual(append, "google.com")
  
  end function