Add two QuicheMemSliceTests.

Test that move assignment operator works as expected on a non-empty instance.
Also test Reset().

PiperOrigin-RevId: 444547860
diff --git a/quiche/common/platform/api/quiche_mem_slice_test.cc b/quiche/common/platform/api/quiche_mem_slice_test.cc
index 472dbe1..4eadcc9 100644
--- a/quiche/common/platform/api/quiche_mem_slice_test.cc
+++ b/quiche/common/platform/api/quiche_mem_slice_test.cc
@@ -4,6 +4,7 @@
 
 #include "quiche/common/platform/api/quiche_mem_slice.h"
 
+#include <cstring>
 #include <memory>
 
 #include "absl/strings/string_view.h"
@@ -49,6 +50,33 @@
   EXPECT_TRUE(slice_.empty());
 }
 
+TEST_F(QuicheMemSliceTest, MoveAssignNonEmpty) {
+  const absl::string_view data("foo");
+  auto buffer = std::make_unique<char[]>(data.length());
+  std::memcpy(buffer.get(), data.data(), data.length());
+
+  QuicheMemSlice moved(std::move(buffer), data.length());
+  EXPECT_EQ(data, moved.AsStringView());
+
+  moved = std::move(slice_);
+  EXPECT_EQ(moved.data(), orig_data_);
+  EXPECT_EQ(moved.length(), orig_length_);
+  EXPECT_EQ(nullptr, slice_.data());
+  EXPECT_EQ(0u, slice_.length());
+  EXPECT_TRUE(slice_.empty());
+}
+
+TEST_F(QuicheMemSliceTest, Reset) {
+  EXPECT_EQ(slice_.data(), orig_data_);
+  EXPECT_EQ(slice_.length(), orig_length_);
+  EXPECT_FALSE(slice_.empty());
+
+  slice_.Reset();
+
+  EXPECT_EQ(slice_.length(), 0u);
+  EXPECT_TRUE(slice_.empty());
+}
+
 TEST_F(QuicheMemSliceTest, SliceAllocatedOnHeap) {
   auto buffer = std::make_unique<char[]>(128);
   char* orig_data = buffer.get();