• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.google.protobuf;
2 
3 import static com.google.common.truth.Truth.assertThat;
4 
5 import protobuf_unittest.UnittestProto;
6 import org.junit.Test;
7 import org.junit.runner.RunWith;
8 import org.junit.runners.JUnit4;
9 
10 @RunWith(JUnit4.class)
11 public final class LegacyUnredactedTextFormatTest {
12 
13   @Test
legacyUnredactedTextFormatMessage_defaultMessageIsEmpty()14   public void legacyUnredactedTextFormatMessage_defaultMessageIsEmpty() {
15     UnittestProto.TestEmptyMessage message = UnittestProto.TestEmptyMessage.getDefaultInstance();
16     assertThat(LegacyUnredactedTextFormat.legacyUnredactedMultilineString(message)).isEmpty();
17 
18     UnittestProto.TestEmptyMessage singleLineMessage =
19         UnittestProto.TestEmptyMessage.getDefaultInstance();
20     assertThat(LegacyUnredactedTextFormat.legacyUnredactedSingleLineString(singleLineMessage))
21         .isEmpty();
22   }
23 
24   @Test
legacyUnredactedTextFormatMessage_hasExpectedFormats()25   public void legacyUnredactedTextFormatMessage_hasExpectedFormats() {
26     UnittestProto.RedactedFields message =
27         UnittestProto.RedactedFields.newBuilder()
28             .setOptionalRedactedString("redacted")
29             .setOptionalUnredactedString("hello")
30             .setOptionalRedactedMessage(
31                 UnittestProto.TestNestedMessageRedaction.newBuilder()
32                     .setOptionalRedactedNestedString("nested")
33                     .build())
34             .setOptionalUnredactedMessage(
35                 UnittestProto.TestNestedMessageRedaction.newBuilder()
36                     .setOptionalUnredactedNestedString("unredacted")
37                     .build())
38             .build();
39     assertThat(LegacyUnredactedTextFormat.legacyUnredactedMultilineString(message))
40         .isEqualTo(
41             "optional_redacted_string: \"redacted\"\n"
42                 + "optional_unredacted_string: \"hello\"\n"
43                 + "optional_redacted_message {\n"
44                 + "  optional_redacted_nested_string: \"nested\"\n"
45                 + "}\n"
46                 + "optional_unredacted_message {\n"
47                 + "  optional_unredacted_nested_string: \"unredacted\"\n"
48                 + "}\n");
49     assertThat(LegacyUnredactedTextFormat.legacyUnredactedSingleLineString(message))
50         .isEqualTo(
51             "optional_redacted_string: \"redacted\""
52                 + " optional_unredacted_string: \"hello\""
53                 + " optional_redacted_message {"
54                 + " optional_redacted_nested_string: \"nested\""
55                 + " }"
56                 + " optional_unredacted_message {"
57                 + " optional_unredacted_nested_string: \"unredacted\""
58                 + " }");
59   }
60 
makeUnknownFieldSet()61   private UnknownFieldSet makeUnknownFieldSet() {
62     return UnknownFieldSet.newBuilder()
63         .addField(
64             5,
65             UnknownFieldSet.Field.newBuilder()
66                 .addVarint(1)
67                 .addFixed32(2)
68                 .addFixed64(3)
69                 .addLengthDelimited(ByteString.copyFromUtf8("4"))
70                 .addLengthDelimited(
71                     UnknownFieldSet.newBuilder()
72                         .addField(12, UnknownFieldSet.Field.newBuilder().addVarint(6).build())
73                         .build()
74                         .toByteString())
75                 .addGroup(
76                     UnknownFieldSet.newBuilder()
77                         .addField(10, UnknownFieldSet.Field.newBuilder().addVarint(5).build())
78                         .build())
79                 .build())
80         .addField(
81             8, UnknownFieldSet.Field.newBuilder().addVarint(1).addVarint(2).addVarint(3).build())
82         .addField(
83             15,
84             UnknownFieldSet.Field.newBuilder()
85                 .addVarint(0xABCDEF1234567890L)
86                 .addFixed32(0xABCD1234)
87                 .addFixed64(0xABCDEF1234567890L)
88                 .build())
89         .build();
90   }
91 
92   @Test
legacyUnredactedTextFormatUnknownFields_hasExpectedFormats()93   public void legacyUnredactedTextFormatUnknownFields_hasExpectedFormats() {
94     UnknownFieldSet unknownFields = makeUnknownFieldSet();
95     assertThat(LegacyUnredactedTextFormat.legacyUnredactedMultilineString(unknownFields))
96         .isEqualTo(
97             "5: 1\n"
98                 + "5: 0x00000002\n"
99                 + "5: 0x0000000000000003\n"
100                 + "5: \"4\"\n"
101                 + "5: {\n"
102                 + "  12: 6\n"
103                 + "}\n"
104                 + "5 {\n"
105                 + "  10: 5\n"
106                 + "}\n"
107                 + "8: 1\n"
108                 + "8: 2\n"
109                 + "8: 3\n"
110                 + "15: 12379813812177893520\n"
111                 + "15: 0xabcd1234\n"
112                 + "15: 0xabcdef1234567890\n");
113     assertThat(LegacyUnredactedTextFormat.legacyUnredactedSingleLineString(unknownFields))
114         .isEqualTo(
115             "5: 1"
116                 + " 5: 0x00000002"
117                 + " 5: 0x0000000000000003"
118                 + " 5: \"4\""
119                 + " 5: {"
120                 + " 12: 6"
121                 + " }"
122                 + " 5 {"
123                 + " 10: 5"
124                 + " }"
125                 + " 8: 1"
126                 + " 8: 2"
127                 + " 8: 3"
128                 + " 15: 12379813812177893520"
129                 + " 15: 0xabcd1234"
130                 + " 15: 0xabcdef1234567890");
131   }
132 }
133