| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import <Foundation/Foundation.h> | 5 #import <Foundation/Foundation.h> |
| 6 | 6 |
| 7 #include "base/mac/scoped_nsobject.h" | 7 #include "base/mac/scoped_nsobject.h" |
| 8 #include "base/strings/sys_string_conversions.h" | 8 #include "base/strings/sys_string_conversions.h" |
| 9 #import "ios/testing/ocmock_complex_type_helper.h" | 9 #import "ios/testing/ocmock_complex_type_helper.h" |
| 10 #import "ios/web/navigation/crw_session_entry.h" | 10 #import "ios/web/navigation/crw_session_entry.h" |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 *length = 0; | 116 *length = 0; |
| 117 return NULL; | 117 return NULL; |
| 118 }; | 118 }; |
| 119 | 119 |
| 120 [[[decoder stub] andReturnValue:[NSNumber numberWithBool:NO]] | 120 [[[decoder stub] andReturnValue:[NSNumber numberWithBool:NO]] |
| 121 containsValueForKey:[OCMArg any]]; | 121 containsValueForKey:[OCMArg any]]; |
| 122 | 122 |
| 123 [decoder onSelector:@selector(decodeBytesForKey:returnedLength:) | 123 [decoder onSelector:@selector(decodeBytesForKey:returnedLength:) |
| 124 callBlockExpectation:block]; | 124 callBlockExpectation:block]; |
| 125 [[[decoder expect] andReturn:virtualUrl] | 125 [[[decoder expect] andReturn:virtualUrl] |
| 126 decodeObjectForKey:@"virtualUrl"]; | 126 decodeObjectForKey:web::kURLDeperecatedKey]; |
| 127 [[[decoder expect] andReturn:referrer] | 127 [[[decoder expect] andReturn:referrer] |
| 128 decodeObjectForKey:@"referrer"]; | 128 decodeObjectForKey:web::kReferrerURLDeprecatedKey]; |
| 129 [[[decoder expect] andReturn:title] | 129 [[[decoder expect] andReturn:title] decodeObjectForKey:web::kTitleKey]; |
| 130 decodeObjectForKey:@"title"]; | |
| 131 const web::PageScrollState& scrollState = | 130 const web::PageScrollState& scrollState = |
| 132 [sessionEntry_ navigationItem]->GetPageScrollState(); | 131 [sessionEntry_ navigationItem]->GetPageScrollState(); |
| 133 NSDictionary* serializedScrollState = | 132 NSDictionary* serializedScrollState = |
| 134 [CRWSessionEntry dictionaryFromScrollState:scrollState]; | 133 [CRWSessionEntry dictionaryFromScrollState:scrollState]; |
| 135 [[[decoder expect] andReturn:serializedScrollState] | 134 [[[decoder expect] andReturn:serializedScrollState] |
| 136 decodeObjectForKey:@"state"]; | 135 decodeObjectForKey:web::kPageScrollStateKey]; |
| 137 BOOL useDesktopUserAgent = | 136 BOOL useDesktopUserAgent = |
| 138 [sessionEntry_ navigationItem]->IsOverridingUserAgent(); | 137 [sessionEntry_ navigationItem]->IsOverridingUserAgent(); |
| 139 [[[decoder expect] andReturnValue:OCMOCK_VALUE(useDesktopUserAgent)] | 138 [[[decoder expect] andReturnValue:OCMOCK_VALUE(useDesktopUserAgent)] |
| 140 decodeBoolForKey:@"useDesktopUserAgent"]; | 139 decodeBoolForKey:web::kUseDesktopUserAgentKey]; |
| 141 NSDictionary* requestHeaders = | 140 NSDictionary* requestHeaders = |
| 142 [sessionEntry_ navigationItem]->GetHttpRequestHeaders(); | 141 [sessionEntry_ navigationItem]->GetHttpRequestHeaders(); |
| 143 [[[decoder expect] andReturn:requestHeaders] | 142 [[[decoder expect] andReturn:requestHeaders] |
| 144 decodeObjectForKey:@"httpHeaders"]; | 143 decodeObjectForKey:web::kHTTPRequestHeadersKey]; |
| 145 [[[decoder expect] | 144 [[[decoder expect] |
| 146 andReturn:[sessionEntry_ navigationItemImpl]->GetPostData()] | 145 andReturn:[sessionEntry_ navigationItemImpl]->GetPostData()] |
| 147 decodeObjectForKey:@"POSTData"]; | 146 decodeObjectForKey:web::kPOSTDataKey]; |
| 148 BOOL skipResubmitDataConfirmation = | 147 BOOL skipResubmitDataConfirmation = |
| 149 [sessionEntry_ navigationItemImpl]->ShouldSkipResubmitDataConfirmation(); | 148 [sessionEntry_ navigationItemImpl]->ShouldSkipResubmitDataConfirmation(); |
| 150 [[[decoder expect] andReturnValue:OCMOCK_VALUE(skipResubmitDataConfirmation)] | 149 [[[decoder expect] andReturnValue:OCMOCK_VALUE(skipResubmitDataConfirmation)] |
| 151 decodeBoolForKey:@"skipResubmitDataConfirmation"]; | 150 decodeBoolForKey:web::kSkipResubmitConfirmationKey]; |
| 152 | 151 |
| 153 base::scoped_nsobject<CRWSessionEntry> newSessionEntry( | 152 base::scoped_nsobject<CRWSessionEntry> newSessionEntry( |
| 154 [[CRWSessionEntry alloc] initWithCoder:decoder]); | 153 [[CRWSessionEntry alloc] initWithCoder:decoder]); |
| 155 web::NavigationItem* newItem = [newSessionEntry navigationItem]; | 154 web::NavigationItem* newItem = [newSessionEntry navigationItem]; |
| 156 | 155 |
| 157 EXPECT_OCMOCK_VERIFY(decoder); | 156 EXPECT_OCMOCK_VERIFY(decoder); |
| 158 expectEqualSessionEntries(sessionEntry_, newSessionEntry, | 157 expectEqualSessionEntries(sessionEntry_, newSessionEntry, |
| 159 ui::PAGE_TRANSITION_RELOAD); | 158 ui::PAGE_TRANSITION_RELOAD); |
| 160 EXPECT_NE(item->GetURL(), newItem->GetURL()); | 159 EXPECT_NE(item->GetURL(), newItem->GetURL()); |
| 161 EXPECT_EQ(item->GetVirtualURL(), newItem->GetURL()); | 160 EXPECT_EQ(item->GetVirtualURL(), newItem->GetURL()); |
| 162 } | 161 } |
| 163 | 162 |
| 164 TEST_F(CRWSessionEntryTest, InitWithCoderNewStyle) { | 163 TEST_F(CRWSessionEntryTest, InitWithCoderNewStyle) { |
| 165 web::NavigationItem* item = [sessionEntry_ navigationItem]; | 164 web::NavigationItem* item = [sessionEntry_ navigationItem]; |
| 166 item->SetVirtualURL(GURL("http://user.friendly")); | 165 item->SetVirtualURL(GURL("http://user.friendly")); |
| 167 item->SetTitle(base::SysNSStringToUTF16(@"Title")); | 166 item->SetTitle(base::SysNSStringToUTF16(@"Title")); |
| 168 int64 timestamp = item->GetTimestamp().ToInternalValue(); | 167 int64 timestamp = item->GetTimestamp().ToInternalValue(); |
| 169 | 168 |
| 170 std::string virtualUrl = item->GetVirtualURL().spec(); | 169 std::string virtualUrl = item->GetVirtualURL().spec(); |
| 171 std::string referrerUrl = item->GetReferrer().url.spec(); | 170 std::string referrerUrl = item->GetReferrer().url.spec(); |
| 172 NSString* title = base::SysUTF16ToNSString(item->GetTitle()); | 171 NSString* title = base::SysUTF16ToNSString(item->GetTitle()); |
| 173 base::scoped_nsobject<id> decoder([[OCMockComplexTypeHelper alloc] | 172 base::scoped_nsobject<id> decoder([[OCMockComplexTypeHelper alloc] |
| 174 initWithRepresentedObject:[OCMockObject mockForClass:[NSCoder class]]]); | 173 initWithRepresentedObject:[OCMockObject mockForClass:[NSCoder class]]]); |
| 175 | 174 |
| 176 const std::string emptyString; | 175 const std::string emptyString; |
| 177 decodeBytesForKeyBlock block = ^ const uint8_t* (NSString* key, | 176 decodeBytesForKeyBlock block = ^ const uint8_t* (NSString* key, |
| 178 NSUInteger* length) { | 177 NSUInteger* length) { |
| 179 const std::string *value = &emptyString; | 178 const std::string *value = &emptyString; |
| 180 if ([key isEqualToString:@"virtualUrlString"]) | 179 if ([key isEqualToString:web::kURLKey]) |
| 181 value = &virtualUrl; | 180 value = &virtualUrl; |
| 182 else if ([key isEqualToString:@"referrerUrlString"]) | 181 else if ([key isEqualToString:web::kReferrerURLKey]) |
| 183 value = &referrerUrl; | 182 value = &referrerUrl; |
| 184 else | 183 else |
| 185 EXPECT_TRUE(false); | 184 EXPECT_TRUE(false); |
| 186 | 185 |
| 187 *length = value->size(); | 186 *length = value->size(); |
| 188 return reinterpret_cast<const uint8_t*>(value->data()); | 187 return reinterpret_cast<const uint8_t*>(value->data()); |
| 189 }; | 188 }; |
| 190 | 189 |
| 191 [decoder onSelector:@selector(decodeBytesForKey:returnedLength:) | 190 [decoder onSelector:@selector(decodeBytesForKey:returnedLength:) |
| 192 callBlockExpectation:block]; | 191 callBlockExpectation:block]; |
| 193 [[[decoder stub] andReturnValue:[NSNumber numberWithBool:YES]] | 192 [[[decoder stub] andReturnValue:[NSNumber numberWithBool:YES]] |
| 194 containsValueForKey:[OCMArg any]]; | 193 containsValueForKey:[OCMArg any]]; |
| 195 web::ReferrerPolicy expectedPolicy = item->GetReferrer().policy; | 194 web::ReferrerPolicy expectedPolicy = item->GetReferrer().policy; |
| 196 [[[decoder expect] | 195 [[[decoder expect] andReturnValue:OCMOCK_VALUE(expectedPolicy)] |
| 197 andReturnValue:OCMOCK_VALUE(expectedPolicy)] | 196 decodeIntForKey:web::kReferrerPolicyKey]; |
| 198 decodeIntForKey:@"referrerPolicy"]; | |
| 199 [[[decoder expect] andReturnValue:OCMOCK_VALUE(timestamp)] | 197 [[[decoder expect] andReturnValue:OCMOCK_VALUE(timestamp)] |
| 200 decodeInt64ForKey:@"timestamp"]; | 198 decodeInt64ForKey:web::kTimestampKey]; |
| 201 [[[decoder expect] andReturn:title] | 199 [[[decoder expect] andReturn:title] decodeObjectForKey:web::kTitleKey]; |
| 202 decodeObjectForKey:@"title"]; | |
| 203 const web::PageScrollState& scrollState = | 200 const web::PageScrollState& scrollState = |
| 204 [sessionEntry_ navigationItem]->GetPageScrollState(); | 201 [sessionEntry_ navigationItem]->GetPageScrollState(); |
| 205 NSDictionary* serializedScrollState = | 202 NSDictionary* serializedScrollState = |
| 206 [CRWSessionEntry dictionaryFromScrollState:scrollState]; | 203 [CRWSessionEntry dictionaryFromScrollState:scrollState]; |
| 207 [[[decoder expect] andReturn:serializedScrollState] | 204 [[[decoder expect] andReturn:serializedScrollState] |
| 208 decodeObjectForKey:@"state"]; | 205 decodeObjectForKey:web::kPageScrollStateKey]; |
| 209 BOOL useDesktopUserAgent = | 206 BOOL useDesktopUserAgent = |
| 210 [sessionEntry_ navigationItem]->IsOverridingUserAgent(); | 207 [sessionEntry_ navigationItem]->IsOverridingUserAgent(); |
| 211 [[[decoder expect] andReturnValue:OCMOCK_VALUE(useDesktopUserAgent)] | 208 [[[decoder expect] andReturnValue:OCMOCK_VALUE(useDesktopUserAgent)] |
| 212 decodeBoolForKey:@"useDesktopUserAgent"]; | 209 decodeBoolForKey:web::kUseDesktopUserAgentKey]; |
| 213 NSDictionary* requestHeaders = | 210 NSDictionary* requestHeaders = |
| 214 [sessionEntry_ navigationItem]->GetHttpRequestHeaders(); | 211 [sessionEntry_ navigationItem]->GetHttpRequestHeaders(); |
| 215 [[[decoder expect] andReturn:requestHeaders] | 212 [[[decoder expect] andReturn:requestHeaders] |
| 216 decodeObjectForKey:@"httpHeaders"]; | 213 decodeObjectForKey:web::kHTTPRequestHeadersKey]; |
| 217 NSData* POSTData = [sessionEntry_ navigationItemImpl]->GetPostData(); | 214 NSData* POSTData = [sessionEntry_ navigationItemImpl]->GetPostData(); |
| 218 [[[decoder expect] andReturn:POSTData] decodeObjectForKey:@"POSTData"]; | 215 [[[decoder expect] andReturn:POSTData] decodeObjectForKey:web::kPOSTDataKey]; |
| 219 BOOL skipResubmitDataConfirmation = | 216 BOOL skipResubmitDataConfirmation = |
| 220 [sessionEntry_ navigationItemImpl]->ShouldSkipResubmitDataConfirmation(); | 217 [sessionEntry_ navigationItemImpl]->ShouldSkipResubmitDataConfirmation(); |
| 221 [[[decoder expect] andReturnValue:OCMOCK_VALUE(skipResubmitDataConfirmation)] | 218 [[[decoder expect] andReturnValue:OCMOCK_VALUE(skipResubmitDataConfirmation)] |
| 222 decodeBoolForKey:@"skipResubmitDataConfirmation"]; | 219 decodeBoolForKey:web::kSkipResubmitConfirmationKey]; |
| 223 | 220 |
| 224 base::scoped_nsobject<CRWSessionEntry> newSessionEntry( | 221 base::scoped_nsobject<CRWSessionEntry> newSessionEntry( |
| 225 [[CRWSessionEntry alloc] initWithCoder:decoder]); | 222 [[CRWSessionEntry alloc] initWithCoder:decoder]); |
| 226 web::NavigationItem* newItem = [newSessionEntry navigationItem]; | 223 web::NavigationItem* newItem = [newSessionEntry navigationItem]; |
| 227 | 224 |
| 228 EXPECT_OCMOCK_VERIFY(decoder); | 225 EXPECT_OCMOCK_VERIFY(decoder); |
| 229 expectEqualSessionEntries(sessionEntry_, newSessionEntry, | 226 expectEqualSessionEntries(sessionEntry_, newSessionEntry, |
| 230 ui::PAGE_TRANSITION_RELOAD); | 227 ui::PAGE_TRANSITION_RELOAD); |
| 231 EXPECT_NE(item->GetURL(), newItem->GetURL()); | 228 EXPECT_NE(item->GetURL(), newItem->GetURL()); |
| 232 EXPECT_EQ(item->GetVirtualURL(), newItem->GetVirtualURL()); | 229 EXPECT_EQ(item->GetVirtualURL(), newItem->GetVirtualURL()); |
| 233 } | 230 } |
| 234 | 231 |
| 235 TEST_F(CRWSessionEntryTest, EncodeDecode) { | 232 TEST_F(CRWSessionEntryTest, EncodeDecode) { |
| 236 NSData *data = | 233 NSData *data = |
| 237 [NSKeyedArchiver archivedDataWithRootObject:sessionEntry_]; | 234 [NSKeyedArchiver archivedDataWithRootObject:sessionEntry_]; |
| 238 id decoded = [NSKeyedUnarchiver unarchiveObjectWithData:data]; | 235 id decoded = [NSKeyedUnarchiver unarchiveObjectWithData:data]; |
| 239 | 236 |
| 240 expectEqualSessionEntries(sessionEntry_, decoded, | 237 expectEqualSessionEntries(sessionEntry_, decoded, |
| 241 ui::PAGE_TRANSITION_RELOAD); | 238 ui::PAGE_TRANSITION_RELOAD); |
| 242 } | 239 } |
| 243 | 240 |
| 244 TEST_F(CRWSessionEntryTest, EncodeWithCoder) { | 241 TEST_F(CRWSessionEntryTest, EncodeWithCoder) { |
| 245 web::NavigationItem* item = [sessionEntry_ navigationItem]; | 242 web::NavigationItem* item = [sessionEntry_ navigationItem]; |
| 246 NSString* title = base::SysUTF16ToNSString(item->GetTitle()); | 243 NSString* title = base::SysUTF16ToNSString(item->GetTitle()); |
| 247 | 244 |
| 248 base::scoped_nsobject<id> coder([[OCMockComplexTypeHelper alloc] | 245 base::scoped_nsobject<id> coder([[OCMockComplexTypeHelper alloc] |
| 249 initWithRepresentedObject:[OCMockObject mockForClass:[NSCoder class]]]); | 246 initWithRepresentedObject:[OCMockObject mockForClass:[NSCoder class]]]); |
| 250 | 247 |
| 251 encodeBytes_length_forKey_block block = ^(const uint8_t* bytes, | 248 encodeBytes_length_forKey_block block = |
| 252 NSUInteger length, | 249 ^(const uint8_t* bytes, NSUInteger length, NSString* key) { |
| 253 NSString* key) { | 250 if ([key isEqualToString:web::kURLKey]) { |
| 254 if ([key isEqualToString:@"virtualUrlString"]) { | 251 ASSERT_EQ(item->GetVirtualURL().spec(), |
| 255 ASSERT_EQ(item->GetVirtualURL().spec(), | 252 std::string(reinterpret_cast<const char*>(bytes), length)); |
| 256 std::string(reinterpret_cast<const char*>(bytes), length)); | 253 return; |
| 257 return; | 254 } else if ([key isEqualToString:web::kReferrerURLKey]) { |
| 258 } else if ([key isEqualToString:@"referrerUrlString"]) { | 255 ASSERT_EQ(item->GetReferrer().url.spec(), |
| 259 ASSERT_EQ(item->GetReferrer().url.spec(), | 256 std::string(reinterpret_cast<const char*>(bytes), length)); |
| 260 std::string(reinterpret_cast<const char*>(bytes), length)); | 257 return; |
| 261 return; | 258 } |
| 262 } | 259 FAIL(); |
| 263 FAIL(); | 260 }; |
| 264 }; | |
| 265 [coder onSelector:@selector(encodeBytes:length:forKey:) | 261 [coder onSelector:@selector(encodeBytes:length:forKey:) |
| 266 callBlockExpectation:block]; | 262 callBlockExpectation:block]; |
| 267 [[coder expect] encodeInt:item->GetReferrer().policy | 263 [[coder expect] encodeInt:item->GetReferrer().policy |
| 268 forKey:@"referrerPolicy"]; | 264 forKey:web::kReferrerPolicyKey]; |
| 269 [[coder expect] encodeInt64:item->GetTimestamp().ToInternalValue() | 265 [[coder expect] encodeInt64:item->GetTimestamp().ToInternalValue() |
| 270 forKey:@"timestamp"]; | 266 forKey:web::kTimestampKey]; |
| 271 [[coder expect] encodeObject:title forKey:@"title"]; | 267 [[coder expect] encodeObject:title forKey:web::kTitleKey]; |
| 272 const web::PageScrollState& scrollState = | 268 const web::PageScrollState& scrollState = |
| 273 [sessionEntry_ navigationItem]->GetPageScrollState(); | 269 [sessionEntry_ navigationItem]->GetPageScrollState(); |
| 274 NSDictionary* serializedScrollState = | 270 NSDictionary* serializedScrollState = |
| 275 [CRWSessionEntry dictionaryFromScrollState:scrollState]; | 271 [CRWSessionEntry dictionaryFromScrollState:scrollState]; |
| 276 [[coder expect] encodeObject:serializedScrollState forKey:@"state"]; | 272 [[coder expect] encodeObject:serializedScrollState |
| 273 forKey:web::kPageScrollStateKey]; |
| 277 BOOL useDesktopUserAgent = | 274 BOOL useDesktopUserAgent = |
| 278 [sessionEntry_ navigationItem]->IsOverridingUserAgent(); | 275 [sessionEntry_ navigationItem]->IsOverridingUserAgent(); |
| 279 [[coder expect] encodeBool:useDesktopUserAgent forKey:@"useDesktopUserAgent"]; | 276 [[coder expect] encodeBool:useDesktopUserAgent |
| 277 forKey:web::kUseDesktopUserAgentKey]; |
| 280 NSDictionary* requestHeaders = | 278 NSDictionary* requestHeaders = |
| 281 [sessionEntry_ navigationItem]->GetHttpRequestHeaders(); | 279 [sessionEntry_ navigationItem]->GetHttpRequestHeaders(); |
| 282 [[coder expect] encodeObject:requestHeaders | 280 [[coder expect] encodeObject:requestHeaders |
| 283 forKey:@"httpHeaders"]; | 281 forKey:web::kHTTPRequestHeadersKey]; |
| 284 [[coder expect] encodeObject:[sessionEntry_ navigationItemImpl]->GetPostData() | 282 [[coder expect] encodeObject:[sessionEntry_ navigationItemImpl]->GetPostData() |
| 285 forKey:@"POSTData"]; | 283 forKey:web::kPOSTDataKey]; |
| 286 BOOL skipResubmitDataConfirmation = | 284 BOOL skipResubmitDataConfirmation = |
| 287 [sessionEntry_ navigationItemImpl]->ShouldSkipResubmitDataConfirmation(); | 285 [sessionEntry_ navigationItemImpl]->ShouldSkipResubmitDataConfirmation(); |
| 288 [[coder expect] encodeBool:skipResubmitDataConfirmation | 286 [[coder expect] encodeBool:skipResubmitDataConfirmation |
| 289 forKey:@"skipResubmitDataConfirmation"]; | 287 forKey:web::kSkipResubmitConfirmationKey]; |
| 290 [sessionEntry_ encodeWithCoder:coder]; | 288 [sessionEntry_ encodeWithCoder:coder]; |
| 291 EXPECT_OCMOCK_VERIFY(coder); | 289 EXPECT_OCMOCK_VERIFY(coder); |
| 292 } | 290 } |
| 293 | 291 |
| 294 TEST_F(CRWSessionEntryTest, CodingEncoding) { | 292 TEST_F(CRWSessionEntryTest, CodingEncoding) { |
| 295 web::NavigationItem* item = [sessionEntry_ navigationItem]; | 293 web::NavigationItem* item = [sessionEntry_ navigationItem]; |
| 296 item->SetVirtualURL(GURL("http://user.friendly")); | 294 item->SetVirtualURL(GURL("http://user.friendly")); |
| 297 NSData* data = [NSKeyedArchiver archivedDataWithRootObject:sessionEntry_]; | 295 NSData* data = [NSKeyedArchiver archivedDataWithRootObject:sessionEntry_]; |
| 298 EXPECT_TRUE(data != nil); | 296 EXPECT_TRUE(data != nil); |
| 299 CRWSessionEntry* unarchivedSessionEntry = | 297 CRWSessionEntry* unarchivedSessionEntry = |
| (...skipping 22 matching lines...) Expand all Loading... |
| 322 TEST_F(CRWSessionEntryTest, NonEmptyVirtualUrl) { | 320 TEST_F(CRWSessionEntryTest, NonEmptyVirtualUrl) { |
| 323 web::NavigationItem* item = [sessionEntry_ navigationItem]; | 321 web::NavigationItem* item = [sessionEntry_ navigationItem]; |
| 324 item->SetVirtualURL(GURL("http://user.friendly")); | 322 item->SetVirtualURL(GURL("http://user.friendly")); |
| 325 EXPECT_EQ(GURL("http://user.friendly/"), item->GetVirtualURL()); | 323 EXPECT_EQ(GURL("http://user.friendly/"), item->GetVirtualURL()); |
| 326 EXPECT_EQ(GURL("http://init.test/"), item->GetURL()); | 324 EXPECT_EQ(GURL("http://init.test/"), item->GetURL()); |
| 327 } | 325 } |
| 328 | 326 |
| 329 TEST_F(CRWSessionEntryTest, EmptyDescription) { | 327 TEST_F(CRWSessionEntryTest, EmptyDescription) { |
| 330 EXPECT_GT([[sessionEntry_ description] length], 0U); | 328 EXPECT_GT([[sessionEntry_ description] length], 0U); |
| 331 } | 329 } |
| OLD | NEW |