TestStringView.cpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include <AK/TestSuite.h>
  2. #include <AK/String.h>
  3. TEST_CASE(construct_empty)
  4. {
  5. EXPECT(StringView().is_null());
  6. EXPECT(StringView().is_empty());
  7. EXPECT(!StringView().characters_without_null_termination());
  8. EXPECT_EQ(StringView().length(), 0);
  9. }
  10. TEST_CASE(view_literal)
  11. {
  12. const char* truth = "cats rule dogs drool";
  13. StringView view(truth);
  14. EXPECT_EQ(view.is_null(), false);
  15. EXPECT_EQ(view.characters_without_null_termination(), truth);
  16. EXPECT_EQ(view, view);
  17. EXPECT_EQ(view, truth);
  18. }
  19. TEST_CASE(compare_views)
  20. {
  21. String foo1 = "foo";
  22. String foo2 = "foo";
  23. auto view1 = foo1.view();
  24. auto view2 = foo2.view();
  25. EXPECT_EQ(view1, view2);
  26. EXPECT_EQ(view1, foo1);
  27. EXPECT_EQ(view1, foo2);
  28. EXPECT_EQ(view1, "foo");
  29. }
  30. TEST_CASE(starts_with)
  31. {
  32. String test_string = "ABCDEF";
  33. StringView test_string_view = test_string.view();
  34. EXPECT(test_string_view.starts_with("AB"));
  35. EXPECT(test_string_view.starts_with("ABCDEF"));
  36. EXPECT(!test_string_view.starts_with("DEF"));
  37. }
  38. TEST_MAIN(StringView)