summaryrefslogtreecommitdiff
path: root/test/uri.cc
blob: 44366b9847029168de9ba8720df114f993f7eadb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "uri.hh"

#include <gtest/gtest.h>
#include <string>

TEST(uri, empty) {
  std::string tmp;
  EXPECT_EQ("", uri::decode("", tmp).value_or("error"));
}

TEST(uri, example) {
  std::string tmp;
  EXPECT_EQ("?x=test", uri::decode("%3Fx%3Dtest", tmp).value_or("error"));
  EXPECT_EQ(
      "шеллы",
      uri::decode("%D1%88%D0%B5%D0%BB%D0%BB%D1%8B", tmp).value_or("error"));
  EXPECT_EQ("JavaScript_шеллы",
            uri::decode("JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B", tmp)
                .value_or("error"));
  EXPECT_FALSE(uri::decode("%E0%A4%A", tmp).has_value());
  EXPECT_EQ("search+query (correct)",
            uri::decode("search+query%20%28correct%29", tmp).value_or("error"));
}