//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#include <common.cxx>
#include <net/http/request.hpp>

CASE("A HTTP request can be created from a string")
{
    http::Request r("GET / HTTP/1.1\r\nUser-Agent: IncludeOS/0.9\r\nConnection: close\r\nHost: www.google.com\r\n\r\n");
    EXPECT(r.version().to_string() == "HTTP/1.1");
    EXPECT(http::method::str(r.method()) == "GET");
}

CASE("method() returns the HTTP method for the request")
{
    http::Request r("HEAD / HTTP/1.0\r\nUser-Agent: IncludeOS/0.9\r\nHost: www.google.com\r\n\r\n");
    EXPECT(http::method::str(r.method()) == "HEAD");
}

CASE("HTTP method can be set for the request")
{
    http::Request r("HEAD / HTTP/1.0\r\nUser-Agent: IncludeOS/0.9\r\nHost: www.google.com\r\n\r\n");
    EXPECT(http::method::str(r.method()) == "HEAD");
    r.set_method(http::GET);
    EXPECT(http::method::str(r.method()) == "GET");