Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Side by Side Diff: third_party/protobuf/objectivec/Tests/GPBMessageTests.m

Issue 1983203003: Update third_party/protobuf to protobuf-v3.0.0-beta-3 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: owners Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Protocol Buffers - Google's data interchange format 1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved. 2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/ 3 // https://developers.google.com/protocol-buffers/
4 // 4 //
5 // Redistribution and use in source and binary forms, with or without 5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are 6 // modification, are permitted provided that the following conditions are
7 // met: 7 // met:
8 // 8 //
9 // * Redistributions of source code must retain the above copyright 9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer. 10 // notice, this list of conditions and the following disclaimer.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 48
49 // TODO(thomasvl): this should get split into a few files of logic junks, it is 49 // TODO(thomasvl): this should get split into a few files of logic junks, it is
50 // a jumble of things at the moment (and the testutils have a bunch of the real 50 // a jumble of things at the moment (and the testutils have a bunch of the real
51 // assertions). 51 // assertions).
52 52
53 - (TestAllTypes *)mergeSource { 53 - (TestAllTypes *)mergeSource {
54 TestAllTypes *message = [TestAllTypes message]; 54 TestAllTypes *message = [TestAllTypes message];
55 [message setOptionalInt32:1]; 55 [message setOptionalInt32:1];
56 [message setOptionalString:@"foo"]; 56 [message setOptionalString:@"foo"];
57 [message setOptionalForeignMessage:[ForeignMessage message]]; 57 [message setOptionalForeignMessage:[ForeignMessage message]];
58 message.repeatedStringArray = [NSMutableArray array];
59 [message.repeatedStringArray addObject:@"bar"]; 58 [message.repeatedStringArray addObject:@"bar"];
60 return message; 59 return message;
61 } 60 }
62 61
63 - (TestAllTypes *)mergeDestination { 62 - (TestAllTypes *)mergeDestination {
64 TestAllTypes *message = [TestAllTypes message]; 63 TestAllTypes *message = [TestAllTypes message];
65 [message setOptionalInt64:2]; 64 [message setOptionalInt64:2];
66 [message setOptionalString:@"baz"]; 65 [message setOptionalString:@"baz"];
67 ForeignMessage *foreignMessage = [ForeignMessage message]; 66 ForeignMessage *foreignMessage = [ForeignMessage message];
68 [foreignMessage setC:3]; 67 [foreignMessage setC:3];
69 [message setOptionalForeignMessage:foreignMessage]; 68 [message setOptionalForeignMessage:foreignMessage];
70 message.repeatedStringArray = [NSMutableArray array];
71 [message.repeatedStringArray addObject:@"qux"]; 69 [message.repeatedStringArray addObject:@"qux"];
72 return message; 70 return message;
73 } 71 }
74 72
75 - (TestAllTypes *)mergeDestinationWithoutForeignMessageIvar { 73 - (TestAllTypes *)mergeDestinationWithoutForeignMessageIvar {
76 TestAllTypes *message = [TestAllTypes message]; 74 TestAllTypes *message = [TestAllTypes message];
77 [message setOptionalInt64:2]; 75 [message setOptionalInt64:2];
78 [message setOptionalString:@"baz"]; 76 [message setOptionalString:@"baz"];
79 message.repeatedStringArray = [NSMutableArray array];
80 [message.repeatedStringArray addObject:@"qux"]; 77 [message.repeatedStringArray addObject:@"qux"];
81 return message; 78 return message;
82 } 79 }
83 80
84 - (TestAllTypes *)mergeResult { 81 - (TestAllTypes *)mergeResult {
85 TestAllTypes *message = [TestAllTypes message]; 82 TestAllTypes *message = [TestAllTypes message];
86 [message setOptionalInt32:1]; 83 [message setOptionalInt32:1];
87 [message setOptionalInt64:2]; 84 [message setOptionalInt64:2];
88 [message setOptionalString:@"foo"]; 85 [message setOptionalString:@"foo"];
89 ForeignMessage *foreignMessage = [ForeignMessage message]; 86 ForeignMessage *foreignMessage = [ForeignMessage message];
90 [foreignMessage setC:3]; 87 [foreignMessage setC:3];
91 [message setOptionalForeignMessage:foreignMessage]; 88 [message setOptionalForeignMessage:foreignMessage];
92 message.repeatedStringArray = [NSMutableArray array];
93 [message.repeatedStringArray addObject:@"qux"]; 89 [message.repeatedStringArray addObject:@"qux"];
94 [message.repeatedStringArray addObject:@"bar"]; 90 [message.repeatedStringArray addObject:@"bar"];
95 return message; 91 return message;
96 } 92 }
97 93
98 - (TestAllTypes *)mergeResultForDestinationWithoutForeignMessageIvar { 94 - (TestAllTypes *)mergeResultForDestinationWithoutForeignMessageIvar {
99 TestAllTypes *message = [TestAllTypes message]; 95 TestAllTypes *message = [TestAllTypes message];
100 [message setOptionalInt32:1]; 96 [message setOptionalInt32:1];
101 [message setOptionalInt64:2]; 97 [message setOptionalInt64:2];
102 [message setOptionalString:@"foo"]; 98 [message setOptionalString:@"foo"];
103 ForeignMessage *foreignMessage = [ForeignMessage message]; 99 ForeignMessage *foreignMessage = [ForeignMessage message];
104 [message setOptionalForeignMessage:foreignMessage]; 100 [message setOptionalForeignMessage:foreignMessage];
105 message.repeatedStringArray = [NSMutableArray array];
106 [message.repeatedStringArray addObject:@"qux"]; 101 [message.repeatedStringArray addObject:@"qux"];
107 [message.repeatedStringArray addObject:@"bar"]; 102 [message.repeatedStringArray addObject:@"bar"];
108 return message; 103 return message;
109 } 104 }
110 105
111 - (TestAllExtensions *)mergeExtensionsDestination { 106 - (TestAllExtensions *)mergeExtensionsDestination {
112 TestAllExtensions *message = [TestAllExtensions message]; 107 TestAllExtensions *message = [TestAllExtensions message];
113 [message setExtension:[UnittestRoot optionalInt32Extension] value:@5]; 108 [message setExtension:[UnittestRoot optionalInt32Extension] value:@5];
114 [message setExtension:[UnittestRoot optionalStringExtension] value:@"foo"]; 109 [message setExtension:[UnittestRoot optionalStringExtension] value:@"foo"];
115 ForeignMessage *foreignMessage = [ForeignMessage message]; 110 ForeignMessage *foreignMessage = [ForeignMessage message];
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 TestRequiredForeign *message = [TestRequiredForeign message]; 236 TestRequiredForeign *message = [TestRequiredForeign message];
242 237
243 XCTAssertTrue(message.initialized); 238 XCTAssertTrue(message.initialized);
244 239
245 [message setOptionalMessage:[TestRequired message]]; 240 [message setOptionalMessage:[TestRequired message]];
246 XCTAssertFalse(message.initialized); 241 XCTAssertFalse(message.initialized);
247 242
248 [message setOptionalMessage:self.testRequiredInitialized]; 243 [message setOptionalMessage:self.testRequiredInitialized];
249 XCTAssertTrue(message.initialized); 244 XCTAssertTrue(message.initialized);
250 245
251 message.repeatedMessageArray = [NSMutableArray array];
252 [message.repeatedMessageArray addObject:[TestRequired message]]; 246 [message.repeatedMessageArray addObject:[TestRequired message]];
253 XCTAssertFalse(message.initialized); 247 XCTAssertFalse(message.initialized);
254 248
255 [message.repeatedMessageArray removeAllObjects]; 249 [message.repeatedMessageArray removeAllObjects];
256 [message.repeatedMessageArray addObject:self.testRequiredInitialized]; 250 [message.repeatedMessageArray addObject:self.testRequiredInitialized];
257 XCTAssertTrue(message.initialized); 251 XCTAssertTrue(message.initialized);
258 } 252 }
259 253
260 - (void)testRequiredExtension { 254 - (void)testRequiredExtension {
261 TestAllExtensions *message = [TestAllExtensions message]; 255 TestAllExtensions *message = [TestAllExtensions message];
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 287
294 - (void)testInitialized { 288 - (void)testInitialized {
295 // We're mostly testing that no exception is thrown. 289 // We're mostly testing that no exception is thrown.
296 TestRequired *message = [TestRequired message]; 290 TestRequired *message = [TestRequired message];
297 XCTAssertFalse(message.initialized); 291 XCTAssertFalse(message.initialized);
298 } 292 }
299 293
300 - (void)testDataFromNestedUninitialized { 294 - (void)testDataFromNestedUninitialized {
301 TestRequiredForeign *message = [TestRequiredForeign message]; 295 TestRequiredForeign *message = [TestRequiredForeign message];
302 [message setOptionalMessage:[TestRequired message]]; 296 [message setOptionalMessage:[TestRequired message]];
303 message.repeatedMessageArray = [NSMutableArray array];
304 [message.repeatedMessageArray addObject:[TestRequired message]]; 297 [message.repeatedMessageArray addObject:[TestRequired message]];
305 [message.repeatedMessageArray addObject:[TestRequired message]]; 298 [message.repeatedMessageArray addObject:[TestRequired message]];
306 NSData *data = [message data]; 299 NSData *data = [message data];
307 // In DEBUG, the data generation will fail, but in non DEBUG, it passes 300 // In DEBUG, the data generation will fail, but in non DEBUG, it passes
308 // because the check isn't done (for speed). 301 // because the check isn't done (for speed).
309 #ifdef DEBUG 302 #ifdef DEBUG
310 XCTAssertNil(data); 303 XCTAssertNil(data);
311 #else 304 #else
312 XCTAssertNotNil(data); 305 XCTAssertNotNil(data);
313 XCTAssertFalse(message.initialized); 306 XCTAssertFalse(message.initialized);
314 #endif // DEBUG 307 #endif // DEBUG
315 } 308 }
316 309
317 - (void)testNestedInitialized { 310 - (void)testNestedInitialized {
318 // We're mostly testing that no exception is thrown. 311 // We're mostly testing that no exception is thrown.
319 312
320 TestRequiredForeign *message = [TestRequiredForeign message]; 313 TestRequiredForeign *message = [TestRequiredForeign message];
321 [message setOptionalMessage:[TestRequired message]]; 314 [message setOptionalMessage:[TestRequired message]];
322 message.repeatedMessageArray = [NSMutableArray array];
323 [message.repeatedMessageArray addObject:[TestRequired message]]; 315 [message.repeatedMessageArray addObject:[TestRequired message]];
324 [message.repeatedMessageArray addObject:[TestRequired message]]; 316 [message.repeatedMessageArray addObject:[TestRequired message]];
325 317
326 XCTAssertFalse(message.initialized); 318 XCTAssertFalse(message.initialized);
327 } 319 }
328 320
329 - (void)testParseUninitialized { 321 - (void)testParseUninitialized {
330 NSError *error = nil; 322 NSError *error = nil;
331 TestRequired *msg = 323 TestRequired *msg =
332 [TestRequired parseFromData:GPBEmptyNSData() error:&error]; 324 [TestRequired parseFromData:GPBEmptyNSData() error:&error];
(...skipping 1488 matching lines...) Expand 10 before | Expand all | Expand 10 after
1821 1813
1822 - (void)testEnumDescriptorFromExtensionDescriptor { 1814 - (void)testEnumDescriptorFromExtensionDescriptor {
1823 GPBExtensionDescriptor *extDescriptor = 1815 GPBExtensionDescriptor *extDescriptor =
1824 [UnittestRoot optionalForeignEnumExtension]; 1816 [UnittestRoot optionalForeignEnumExtension];
1825 XCTAssertEqual(extDescriptor.dataType, GPBDataTypeEnum); 1817 XCTAssertEqual(extDescriptor.dataType, GPBDataTypeEnum);
1826 GPBEnumDescriptor *enumDescriptor = extDescriptor.enumDescriptor; 1818 GPBEnumDescriptor *enumDescriptor = extDescriptor.enumDescriptor;
1827 GPBEnumDescriptor *expectedDescriptor = ForeignEnum_EnumDescriptor(); 1819 GPBEnumDescriptor *expectedDescriptor = ForeignEnum_EnumDescriptor();
1828 XCTAssertEqualObjects(enumDescriptor, expectedDescriptor); 1820 XCTAssertEqualObjects(enumDescriptor, expectedDescriptor);
1829 } 1821 }
1830 1822
1823 - (void)testPropertyNaming {
1824 // objectivec_helpers.cc has some special handing to get proper all caps
1825 // for a few cases to meet objc developer expectations.
1826 //
1827 // This "test" confirms that the expected names are generated, otherwise the
1828 // test itself will fail to compile.
1829 ObjCPropertyNaming *msg = [ObjCPropertyNaming message];
1830 // On their own, at the end, in the middle.
1831 msg.URL = @"good";
1832 msg.thumbnailURL = @"good";
1833 msg.URLFoo = @"good";
1834 msg.someURLBlah = @"good";
1835 msg.HTTP = @"good";
1836 msg.HTTPS = @"good";
1837 // No caps since it was "urls".
1838 [msg.urlsArray addObject:@"good"];
1839 }
1840
1831 - (void)testEnumNaming { 1841 - (void)testEnumNaming {
1832 // objectivec_helpers.cc has some interesting cases to deal with in 1842 // objectivec_helpers.cc has some interesting cases to deal with in
1833 // EnumValueName/EnumValueShortName. Confirm that things generated as 1843 // EnumValueName/EnumValueShortName. Confirm that things generated as
1834 // expected. 1844 // expected.
1835 1845
1836 // This block just has to compile to confirm we got the expected types/names. 1846 // This block just has to compile to confirm we got the expected types/names.
1837 // The *_IsValidValue() calls are just there to keep the projects warnings 1847 // The *_IsValidValue() calls are just there to keep the projects warnings
1838 // flags happy by providing use of the variables/values. 1848 // flags happy by providing use of the variables/values.
1839 1849
1840 Foo aFoo = Foo_SerializedSize; 1850 Foo aFoo = Foo_SerializedSize;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
1930 XCTAssertEqual([msgPrime.mumbleArray valueAtIndex:0], 1940 XCTAssertEqual([msgPrime.mumbleArray valueAtIndex:0],
1931 EnumTestMsg_MyEnum_Zero); 1941 EnumTestMsg_MyEnum_Zero);
1932 XCTAssertEqual([msgPrime.mumbleArray valueAtIndex:1], EnumTestMsg_MyEnum_One); 1942 XCTAssertEqual([msgPrime.mumbleArray valueAtIndex:1], EnumTestMsg_MyEnum_One);
1933 XCTAssertEqual([msgPrime.mumbleArray valueAtIndex:2], EnumTestMsg_MyEnum_Two); 1943 XCTAssertEqual([msgPrime.mumbleArray valueAtIndex:2], EnumTestMsg_MyEnum_Two);
1934 XCTAssertEqual([msgPrime.mumbleArray valueAtIndex:3], 1944 XCTAssertEqual([msgPrime.mumbleArray valueAtIndex:3],
1935 EnumTestMsg_MyEnum_NegOne); 1945 EnumTestMsg_MyEnum_NegOne);
1936 XCTAssertEqual([msgPrime.mumbleArray valueAtIndex:4], 1946 XCTAssertEqual([msgPrime.mumbleArray valueAtIndex:4],
1937 EnumTestMsg_MyEnum_NegTwo); 1947 EnumTestMsg_MyEnum_NegTwo);
1938 } 1948 }
1939 1949
1950 - (void)testOneBasedEnumHolder {
1951 // Test case for https://github.com/google/protobuf/issues/1453
1952 // Message with no explicit defaults, but a non zero default for an enum.
1953 MessageWithOneBasedEnum *enumMsg = [MessageWithOneBasedEnum message];
1954 XCTAssertEqual(enumMsg.enumField, MessageWithOneBasedEnum_OneBasedEnum_One);
1955 }
1956
1957 - (void)testBoolOffsetUsage {
1958 // Bools use storage within has_bits; this test ensures that this is honored
1959 // in all places where things should crash or fail based on reading out of
1960 // field storage instead.
1961 BoolOnlyMessage *msg1 = [BoolOnlyMessage message];
1962 BoolOnlyMessage *msg2 = [BoolOnlyMessage message];
1963
1964 msg1.boolField1 = YES;
1965 msg2.boolField1 = YES;
1966 msg1.boolField3 = YES;
1967 msg2.boolField3 = YES;
1968 msg1.boolField5 = YES;
1969 msg2.boolField5 = YES;
1970 msg1.boolField7 = YES;
1971 msg2.boolField7 = YES;
1972 msg1.boolField9 = YES;
1973 msg2.boolField9 = YES;
1974 msg1.boolField11 = YES;
1975 msg2.boolField11 = YES;
1976 msg1.boolField13 = YES;
1977 msg2.boolField13 = YES;
1978 msg1.boolField15 = YES;
1979 msg2.boolField15 = YES;
1980 msg1.boolField17 = YES;
1981 msg2.boolField17 = YES;
1982 msg1.boolField19 = YES;
1983 msg2.boolField19 = YES;
1984 msg1.boolField21 = YES;
1985 msg2.boolField21 = YES;
1986 msg1.boolField23 = YES;
1987 msg2.boolField23 = YES;
1988 msg1.boolField25 = YES;
1989 msg2.boolField25 = YES;
1990 msg1.boolField27 = YES;
1991 msg2.boolField27 = YES;
1992 msg1.boolField29 = YES;
1993 msg2.boolField29 = YES;
1994 msg1.boolField31 = YES;
1995 msg2.boolField31 = YES;
1996
1997 msg1.boolField32 = YES;
1998 msg2.boolField32 = YES;
1999
2000 XCTAssertTrue(msg1 != msg2); // Different pointers.
2001 XCTAssertEqual([msg1 hash], [msg2 hash]);
2002 XCTAssertEqualObjects(msg1, msg2);
2003
2004 BoolOnlyMessage *msg1Prime = [[msg1 copy] autorelease];
2005 XCTAssertTrue(msg1Prime != msg1); // Different pointers.
2006 XCTAssertEqual([msg1 hash], [msg1Prime hash]);
2007 XCTAssertEqualObjects(msg1, msg1Prime);
2008
2009 // Field set in one, but not the other means they don't match (even if
2010 // set to default value).
2011 msg1Prime.boolField2 = NO;
2012 XCTAssertNotEqualObjects(msg1Prime, msg1);
2013 // And when set to different values.
2014 msg1.boolField2 = YES;
2015 XCTAssertNotEqualObjects(msg1Prime, msg1);
2016 // And then they match again.
2017 msg1.boolField2 = NO;
2018 XCTAssertEqualObjects(msg1Prime, msg1);
2019 XCTAssertEqual([msg1 hash], [msg1Prime hash]);
2020 }
2021
1940 @end 2022 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698