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

Unified Diff: remoting/ios/host_refresh_unittest.mm

Issue 186733007: iOS Chromoting Client (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/ios/host_refresh_test_helper.h ('k') | remoting/ios/key_input.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/ios/host_refresh_unittest.mm
diff --git a/remoting/ios/host_refresh_unittest.mm b/remoting/ios/host_refresh_unittest.mm
new file mode 100644
index 0000000000000000000000000000000000000000..54f2ee7c265c034c67aea1060b7278b63a316f78
--- /dev/null
+++ b/remoting/ios/host_refresh_unittest.mm
@@ -0,0 +1,170 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+#import "remoting/ios/host_refresh.h"
+
+#import "base/compiler_specific.h"
+#import "testing/gtest_mac.h"
+
+#import "remoting/ios/host.h"
+#import "remoting/ios/host_refresh_test_helper.h"
+
+@interface HostRefreshDelegateTester : NSObject<HostRefreshDelegate>
+
+@property(nonatomic) NSArray* hostList;
+@property(nonatomic) NSString* errorMessage;
+
+@end
+
+@implementation HostRefreshDelegateTester
+
+@synthesize hostList = _hostList;
+@synthesize errorMessage = _errorMessage;
+
+- (void)hostListRefresh:(NSArray*)hostList
+ errorMessage:(NSString*)errorMessage {
+ _hostList = hostList;
+ _errorMessage = errorMessage;
+}
+
+- (bool)receivedHosts {
+ return (_hostList.count > 0);
+}
+
+- (bool)receivedErrorMessage {
+ return (_errorMessage != nil);
+}
+
+@end
+
+namespace remoting {
+
+namespace {
+
+NSString* kErrorMessageTest = @"TestErrorMessage";
+
+} // namespace
+
+class HostRefreshTest : public ::testing::Test {
+ protected:
+ virtual void SetUp() OVERRIDE {
+ hostRefreshProcessor_ = [[HostRefresh allocWithZone:nil] init];
+ delegateTester_ = [[HostRefreshDelegateTester alloc] init];
+ [hostRefreshProcessor_ setDelegate:delegateTester_];
+ }
+
+ void CreateHostList(int numHosts) {
+ [hostRefreshProcessor_
+ setJsonData:HostRefreshTestHelper::GetHostList(numHosts)];
+ }
+
+ NSError* CreateErrorFromString(NSString* message) {
+ NSDictionary* errorDictionary = nil;
+
+ if (message != nil) {
+ errorDictionary = @{NSLocalizedDescriptionKey : message};
+ }
+
+ return [[NSError alloc] initWithDomain:@"HostRefreshTest"
+ code:EPERM
+ userInfo:errorDictionary];
+ }
+
+ HostRefresh* hostRefreshProcessor_;
+ HostRefreshDelegateTester* delegateTester_;
+};
+
+TEST_F(HostRefreshTest, ErrorFormatter) {
+ [hostRefreshProcessor_ connection:nil
+ didFailWithError:CreateErrorFromString(nil)];
+ ASSERT_FALSE(hostRefreshProcessor_.errorMessage == nil);
+
+ [hostRefreshProcessor_ connection:nil
+ didFailWithError:CreateErrorFromString(@"")];
+ ASSERT_FALSE(hostRefreshProcessor_.errorMessage == nil);
+
+ [hostRefreshProcessor_ connection:nil
+ didFailWithError:CreateErrorFromString(kErrorMessageTest)];
+ ASSERT_TRUE([hostRefreshProcessor_.errorMessage
+ rangeOfString:kErrorMessageTest].location != NSNotFound);
+}
+
+TEST_F(HostRefreshTest, JSONParsing) {
+ // There were no hosts returned
+ CreateHostList(0);
+ [hostRefreshProcessor_ connectionDidFinishLoading:nil];
+ ASSERT_TRUE(delegateTester_.hostList.count == 0);
+
+ CreateHostList(1);
+ [hostRefreshProcessor_ connectionDidFinishLoading:nil];
+ ASSERT_TRUE(delegateTester_.hostList.count == 1);
+
+ Host* host = static_cast<Host*>([delegateTester_.hostList objectAtIndex:0]);
+ ASSERT_NSEQ(HostRefreshTestHelper::CreatedTimeTest, host.createdTime);
+ ASSERT_NSEQ(HostRefreshTestHelper::HostIdTest, host.hostId);
+ ASSERT_NSEQ(HostRefreshTestHelper::HostNameTest, host.hostName);
+ ASSERT_NSEQ(HostRefreshTestHelper::HostVersionTest, host.hostVersion);
+ ASSERT_NSEQ(HostRefreshTestHelper::KindTest, host.kind);
+ ASSERT_NSEQ(HostRefreshTestHelper::JabberIdTest, host.jabberId);
+ ASSERT_NSEQ(HostRefreshTestHelper::PublicKeyTest, host.publicKey);
+ ASSERT_NSEQ(HostRefreshTestHelper::StatusTest, host.status);
+ ASSERT_NSEQ(HostRefreshTestHelper::UpdatedTimeTest, host.updatedTime);
+
+ CreateHostList(11);
+ [hostRefreshProcessor_ connectionDidFinishLoading:nil];
+ ASSERT_TRUE(delegateTester_.hostList.count == 11);
+
+ // An error in parsing returns no hosts
+ [hostRefreshProcessor_
+ setJsonData:
+ [NSMutableData
+ dataWithData:
+ [@"{\"dataaaaaafa\":{\"kiffffnd\":\"chromoting#hostList\"}}"
+ dataUsingEncoding:NSUTF8StringEncoding]]];
+ [hostRefreshProcessor_ connectionDidFinishLoading:nil];
+ ASSERT_TRUE(delegateTester_.hostList.count == 0);
+}
+
+TEST_F(HostRefreshTest, HostListDelegateNoList) {
+ // Hosts were not processed at all
+ [hostRefreshProcessor_ connectionDidFinishLoading:nil];
+ ASSERT_FALSE([delegateTester_ receivedHosts]);
+ ASSERT_TRUE([delegateTester_ receivedErrorMessage]);
+
+ // There were no hosts returned
+ CreateHostList(0);
+ [hostRefreshProcessor_ connectionDidFinishLoading:nil];
+ ASSERT_FALSE([delegateTester_ receivedHosts]);
+ ASSERT_TRUE([delegateTester_ receivedErrorMessage]);
+}
+
+TEST_F(HostRefreshTest, HostListDelegateHasList) {
+ CreateHostList(1);
+ [hostRefreshProcessor_ connectionDidFinishLoading:nil];
+ ASSERT_TRUE([delegateTester_ receivedHosts]);
+ ASSERT_FALSE([delegateTester_ receivedErrorMessage]);
+}
+
+TEST_F(HostRefreshTest, HostListDelegateHasListWithError) {
+ CreateHostList(1);
+
+ [hostRefreshProcessor_ connection:nil
+ didFailWithError:CreateErrorFromString(kErrorMessageTest)];
+
+ [hostRefreshProcessor_ connectionDidFinishLoading:nil];
+ ASSERT_TRUE([delegateTester_ receivedHosts]);
+ ASSERT_TRUE([delegateTester_ receivedErrorMessage]);
+}
+
+TEST_F(HostRefreshTest, ConnectionFailed) {
+ [hostRefreshProcessor_ connection:nil didFailWithError:nil];
+ ASSERT_FALSE([delegateTester_ receivedHosts]);
+ ASSERT_TRUE([delegateTester_ receivedErrorMessage]);
+}
+
+} // namespace remoting
« no previous file with comments | « remoting/ios/host_refresh_test_helper.h ('k') | remoting/ios/key_input.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698