Remove DoesNotExist object status.

It was removed in MOQT draft-18

PiperOrigin-RevId: 996652559
diff --git a/quiche/quic/moqt/moqt_fetch_task.h b/quiche/quic/moqt/moqt_fetch_task.h
index a3866d1..4578ab0 100644
--- a/quiche/quic/moqt/moqt_fetch_task.h
+++ b/quiche/quic/moqt/moqt_fetch_task.h
@@ -69,8 +69,7 @@
     kError,
   };
 
-  // Returns the next object received via the fetch, if available. MUST NOT
-  // return an object with status kObjectDoesNotExist.
+  // Returns the next object received via the fetch, if available.
   virtual GetNextObjectResult GetNextObject(PublishedObject& output) = 0;
 
   // Sets the callback that is called when GetNextObject() has previously
diff --git a/quiche/quic/moqt/moqt_framer_test.cc b/quiche/quic/moqt/moqt_framer_test.cc
index 6ebc2d2..19cebc5 100644
--- a/quiche/quic/moqt/moqt_framer_test.cc
+++ b/quiche/quic/moqt/moqt_framer_test.cc
@@ -309,13 +309,13 @@
 
 TEST_F(MoqtFramerSimpleTest, BadObjectInput) {
   MoqtObject object = {
-      // Invalid: DoesNotExist with non-zero payload length.
+      // Invalid: EndOfTrack with non-zero payload length.
       /*track_alias=*/4,
       /*group_id=*/5,
       /*object_id=*/6,
       /*publisher_priority=*/7,
       std::string(kDefaultPropertyBlob.data(), kDefaultPropertyBlob.size()),
-      /*object_status=*/MoqtObjectStatus::kObjectDoesNotExist,
+      /*object_status=*/MoqtObjectStatus::kEndOfTrack,
       /*subgroup_id=*/8,
       /*first_object_in_subgroup=*/true,
       /*payload_length=*/3,
@@ -345,7 +345,7 @@
   };
   quiche::QuicheBuffer buffer;
 
-  object.object_status = MoqtObjectStatus::kObjectDoesNotExist;
+  object.object_status = MoqtObjectStatus::kEndOfTrack;
   EXPECT_QUIC_BUG(buffer = framer_.SerializeObjectDatagram(
                       object, "foo", kDefaultPublisherPriority),
                   "Object metadata is invalid");
diff --git a/quiche/quic/moqt/moqt_messages.cc b/quiche/quic/moqt/moqt_messages.cc
index 421f283..fffce1a 100644
--- a/quiche/quic/moqt/moqt_messages.cc
+++ b/quiche/quic/moqt/moqt_messages.cc
@@ -266,11 +266,16 @@
 }  // namespace
 
 MoqtObjectStatus IntegerToObjectStatus(uint64_t integer) {
-  if (integer >=
-      static_cast<uint64_t>(MoqtObjectStatus::kInvalidObjectStatus)) {
-    return MoqtObjectStatus::kInvalidObjectStatus;
+  switch (integer) {
+    case 0x0:
+      return MoqtObjectStatus::kNormal;
+    case 0x3:
+      return MoqtObjectStatus::kEndOfGroup;
+    case 0x4:
+      return MoqtObjectStatus::kEndOfTrack;
+    default:
+      return MoqtObjectStatus::kInvalidObjectStatus;
   }
-  return static_cast<MoqtObjectStatus>(integer);
 }
 
 MoqtError SetupOptionsAllowedByMessage(const SetupOptions& options,
diff --git a/quiche/quic/moqt/moqt_messages_test.cc b/quiche/quic/moqt/moqt_messages_test.cc
index 8bd9a12..85f6c91 100644
--- a/quiche/quic/moqt/moqt_messages_test.cc
+++ b/quiche/quic/moqt/moqt_messages_test.cc
@@ -4,6 +4,7 @@
 
 #include "quiche/quic/moqt/moqt_messages.h"
 
+#include <cstdint>
 #include <initializer_list>
 #include <optional>
 
@@ -336,5 +337,16 @@
   }
 }
 
+TEST(MoqtMessagesTest, IntegerToObjectStatus) {
+  EXPECT_EQ(IntegerToObjectStatus(0), MoqtObjectStatus::kNormal);
+  EXPECT_EQ(IntegerToObjectStatus(1), MoqtObjectStatus::kInvalidObjectStatus);
+  EXPECT_EQ(IntegerToObjectStatus(2), MoqtObjectStatus::kInvalidObjectStatus);
+  EXPECT_EQ(IntegerToObjectStatus(3), MoqtObjectStatus::kEndOfGroup);
+  EXPECT_EQ(IntegerToObjectStatus(4), MoqtObjectStatus::kEndOfTrack);
+  EXPECT_EQ(IntegerToObjectStatus(5), MoqtObjectStatus::kInvalidObjectStatus);
+  EXPECT_EQ(IntegerToObjectStatus(UINT64_MAX),
+            MoqtObjectStatus::kInvalidObjectStatus);
+}
+
 }  // namespace
 }  // namespace moqt::test
diff --git a/quiche/quic/moqt/moqt_object_test.cc b/quiche/quic/moqt/moqt_object_test.cc
index fc6e2bb..c30b8ce 100644
--- a/quiche/quic/moqt/moqt_object_test.cc
+++ b/quiche/quic/moqt/moqt_object_test.cc
@@ -70,7 +70,7 @@
   EXPECT_TRUE(metadata.IsMalformed(other));
   other = metadata;
 
-  other.status = MoqtObjectStatus::kObjectDoesNotExist;
+  other.status = MoqtObjectStatus::kEndOfGroup;
   EXPECT_TRUE(metadata.IsMalformed(other));
   other = metadata;
 
@@ -111,7 +111,7 @@
   EXPECT_NE(metadata, other);
   other = metadata;
 
-  other.status = MoqtObjectStatus::kObjectDoesNotExist;
+  other.status = MoqtObjectStatus::kEndOfGroup;
   EXPECT_NE(metadata, other);
   other = metadata;
 
diff --git a/quiche/quic/moqt/moqt_session_test.cc b/quiche/quic/moqt/moqt_session_test.cc
index 7511dbe..a90154c 100644
--- a/quiche/quic/moqt/moqt_session_test.cc
+++ b/quiche/quic/moqt/moqt_session_test.cc
@@ -1516,8 +1516,6 @@
                       MoqtObjectStatus status, Location location,
                       absl::string_view payload,
                       MoqtFetchTask::GetNextObjectResult second_result) {
-  // Nothing is sent for status = kObjectDoesNotExist. Do not use this function.
-  QUICHE_DCHECK(status != MoqtObjectStatus::kObjectDoesNotExist);
   QUICHE_DCHECK(second_result != MoqtFetchTask::GetNextObjectResult::kSuccess);
   EXPECT_CALL(data_stream, CanWrite).WillRepeatedly(Return(true));
   EXPECT_CALL(*fetch_task, GetNextObject)
diff --git a/quiche/quic/moqt/moqt_types.h b/quiche/quic/moqt/moqt_types.h
index 873dc4f..7b57138 100644
--- a/quiche/quic/moqt/moqt_types.h
+++ b/quiche/quic/moqt/moqt_types.h
@@ -54,7 +54,6 @@
 
 enum class QUICHE_EXPORT MoqtObjectStatus : uint64_t {
   kNormal = 0x0,
-  kObjectDoesNotExist = 0x1,
   kEndOfGroup = 0x3,
   kEndOfTrack = 0x4,
   kInvalidObjectStatus = 0x5,
diff --git a/quiche/quic/moqt/moqt_uni_stream_test.cc b/quiche/quic/moqt/moqt_uni_stream_test.cc
index b898a05..f6a62ce 100644
--- a/quiche/quic/moqt/moqt_uni_stream_test.cc
+++ b/quiche/quic/moqt/moqt_uni_stream_test.cc
@@ -352,7 +352,7 @@
 
 TEST_F(OutgoingFetchStreamTest, OnCanWriteNonNormalStatus) {
   PublishedObject obj = DefaultObject();
-  obj.metadata.status = MoqtObjectStatus::kObjectDoesNotExist;
+  obj.metadata.status = MoqtObjectStatus::kEndOfGroup;
   EXPECT_CALL(mock_stream_, CanWrite())
       .WillOnce(Return(true))
       .WillOnce(Return(false));
diff --git a/quiche/quic/moqt/test_tools/moqt_test_message.h b/quiche/quic/moqt/test_tools/moqt_test_message.h
index 6c6703a..d4db588 100644
--- a/quiche/quic/moqt/test_tools/moqt_test_message.h
+++ b/quiche/quic/moqt/test_tools/moqt_test_message.h
@@ -297,7 +297,7 @@
       : ObjectMessage(), datagram_type_(datagram_type) {
     // Update ObjectMessage::object_ to match the datagram type.
     if (datagram_type.has_status()) {
-      object_.object_status = MoqtObjectStatus::kObjectDoesNotExist;
+      object_.object_status = MoqtObjectStatus::kEndOfTrack;
       object_.payload_length = 0;
     } else {
       object_.object_status = datagram_type.end_of_group()