Commit bb5c4d3e authored by 汪洋's avatar 汪洋

针对一些字典的set value添加了nil判断

parent 735c6882
...@@ -480,7 +480,7 @@ ...@@ -480,7 +480,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.1; IPHONEOS_DEPLOYMENT_TARGET = 8.0;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos; SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2"; TARGETED_DEVICE_FAMILY = "1,2";
...@@ -513,7 +513,7 @@ ...@@ -513,7 +513,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.1; IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos; SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2"; TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES; VALIDATE_PRODUCT = YES;
...@@ -567,7 +567,6 @@ ...@@ -567,7 +567,6 @@
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)", "$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)", "$(DEVELOPER_FRAMEWORKS_DIR)",
); );
...@@ -578,6 +577,7 @@ ...@@ -578,6 +577,7 @@
"$(inherited)", "$(inherited)",
); );
INFOPLIST_FILE = "Tests/Tests-Info.plist"; INFOPLIST_FILE = "Tests/Tests-Info.plist";
LIBRARY_SEARCH_PATHS = "";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "c7e6dc21-c52f-40e4-a435-5e942f0af080"; PROVISIONING_PROFILE = "c7e6dc21-c52f-40e4-a435-5e942f0af080";
...@@ -600,6 +600,7 @@ ...@@ -600,6 +600,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch"; GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch";
INFOPLIST_FILE = "Tests/Tests-Info.plist"; INFOPLIST_FILE = "Tests/Tests-Info.plist";
LIBRARY_SEARCH_PATHS = "";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "c7e6dc21-c52f-40e4-a435-5e942f0af080"; PROVISIONING_PROFILE = "c7e6dc21-c52f-40e4-a435-5e942f0af080";
......
PODS: PODS:
- GMCache (0.1.0): - GMCache (0.1.0):
- TMCache (~> 2.1.0) - TMCache (~> 2.1.0)
- GMPhobos (0.2.6): - GMPhobos (0.2.7):
- GMCache (~> 0.1.0) - GMCache (~> 0.1.0)
- TMCache (2.1.0) - TMCache (2.1.0)
...@@ -14,7 +14,7 @@ EXTERNAL SOURCES: ...@@ -14,7 +14,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS: SPEC CHECKSUMS:
GMCache: a7b06a2d8a5a1c7cf023055c631ba9a0cd7c39fc GMCache: a7b06a2d8a5a1c7cf023055c631ba9a0cd7c39fc
GMPhobos: 9f380d6cec55d94ab826d91f67835972b00013b8 GMPhobos: d994cf5fe38fd4502cd11face2474d4dc8089ebf
TMCache: 95ebcc9b3c7e90fb5fd8fc3036cba3aa781c9bed TMCache: 95ebcc9b3c7e90fb5fd8fc3036cba3aa781c9bed
PODFILE CHECKSUM: ab2b5ff1dcd8a35fd02cced6c06c7f9477b82d69 PODFILE CHECKSUM: ab2b5ff1dcd8a35fd02cced6c06c7f9477b82d69
......
{ {
"name": "GMPhobos", "name": "GMPhobos",
"version": "0.2.6", "version": "0.2.7",
"summary": "GM statistic data sdk", "summary": "GM statistic data sdk",
"description": "GM event track sdk.", "description": "GM event track sdk.",
"homepage": "http://git.gengmei.cc/gengmeiios/GMPhobos", "homepage": "http://git.gengmei.cc/gengmeiios/GMPhobos",
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
}, },
"source": { "source": {
"git": "http://git.gengmei.cc/gengmeiios/GMPhobos.git", "git": "http://git.gengmei.cc/gengmeiios/GMPhobos.git",
"tag": "0.2.6" "tag": "0.2.7"
}, },
"platforms": { "platforms": {
"ios": "8.0" "ios": "8.0"
......
PODS: PODS:
- GMCache (0.1.0): - GMCache (0.1.0):
- TMCache (~> 2.1.0) - TMCache (~> 2.1.0)
- GMPhobos (0.2.6): - GMPhobos (0.2.7):
- GMCache (~> 0.1.0) - GMCache (~> 0.1.0)
- TMCache (2.1.0) - TMCache (2.1.0)
...@@ -14,7 +14,7 @@ EXTERNAL SOURCES: ...@@ -14,7 +14,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS: SPEC CHECKSUMS:
GMCache: a7b06a2d8a5a1c7cf023055c631ba9a0cd7c39fc GMCache: a7b06a2d8a5a1c7cf023055c631ba9a0cd7c39fc
GMPhobos: 9f380d6cec55d94ab826d91f67835972b00013b8 GMPhobos: d994cf5fe38fd4502cd11face2474d4dc8089ebf
TMCache: 95ebcc9b3c7e90fb5fd8fc3036cba3aa781c9bed TMCache: 95ebcc9b3c7e90fb5fd8fc3036cba3aa781c9bed
PODFILE CHECKSUM: ab2b5ff1dcd8a35fd02cced6c06c7f9477b82d69 PODFILE CHECKSUM: ab2b5ff1dcd8a35fd02cced6c06c7f9477b82d69
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>FMWK</string> <string>FMWK</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>0.2.6</string> <string>0.2.7</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
......
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
// //
#import <XCTest/XCTest.h> #import <XCTest/XCTest.h>
#import "Phobos.h" #import <GMPhobos/Phobos.h>
#import "WMCacheService.h" #import <GMCache/WMCacheService.h>
#define PhobosCacheKey @"PhobosCacheKey" #define PhobosCacheKey @"PhobosCacheKey"
...@@ -47,7 +47,7 @@ NSString *const MockCityId = @"beijing"; ...@@ -47,7 +47,7 @@ NSString *const MockCityId = @"beijing";
- (void)testClientWithUserId{ - (void)testClientWithUserId{
[_client setUserId:MockUserId]; [_client setUserId:MockUserId];
[_client setCurrentCityId:MockCityId]; [_client setCurrentCityId:MockCityId];
[_client track:MockEventId]; [Phobos track:MockEventId];
NSArray *array = [_cache fetchObjectAtDiskWithkey:PhobosCacheKey]; NSArray *array = [_cache fetchObjectAtDiskWithkey:PhobosCacheKey];
XCTAssertTrue(array.count == 1, @"array is empty"); XCTAssertTrue(array.count == 1, @"array is empty");
NSDictionary *dict = [array objectAtIndex:0]; NSDictionary *dict = [array objectAtIndex:0];
...@@ -113,4 +113,46 @@ NSString *const MockCityId = @"beijing"; ...@@ -113,4 +113,46 @@ NSString *const MockCityId = @"beijing";
XCTAssertTrue([keys containsObject:@"params"], @"Missing params"); XCTAssertTrue([keys containsObject:@"params"], @"Missing params");
} }
- (void)testOnPageStartThenOnPageEnd {
[_client onPageStart:nil businessId:nil referer:nil];
NSDictionary *pageEnterParam1 = [_client valueForKey:@"_pageEnterParam"];
XCTAssertTrue(pageEnterParam1 != nil, @"pageEnterParam 应该实例化成功");
XCTAssertTrue(pageEnterParam1.allKeys.count == 4, @"pageEnterParam 应该有4个key");
[_client onPageStart:@"aaa" businessId:@"adf" referer:nil];
NSDictionary *pageEnterParam2 = [_client valueForKey:@"_pageEnterParam"];
XCTAssertTrue(pageEnterParam2 != nil, @"pageEnterParam 应该实例化成功");
XCTAssertTrue(pageEnterParam2.allKeys.count == 4, @"pageEnterParam 应该有4个key");
[_client onPageEnd];
[self paramUnNilCheck];
NSDictionary *pageEnterParam3 = [_client valueForKey:@"_pageEnterParam"];
XCTAssertTrue(pageEnterParam3.allKeys.count == 0, @"pageEnterParam 应该在onPageEnd后为空的");
}
// 某种情况下没有先走 onPageStart,只走了OnPageEnd,此时数据应该完整,某个key对应的value可以是空
- (void)testOnPageEnd {
[_client setValue:nil forKey:@"_pageEnterParam"];
[_client onPageEnd];
[self paramUnNilCheck];
}
- (void)testSimulativePageViewEvent {
[_client simulativePageViewEventWithPageName:nil BusinessId:nil referer:nil];
[self paramUnNilCheck];
}
- (void)paramUnNilCheck {
NSArray *array = [[WMCacheService sharedInstance] fetchObjectAtDiskWithkey:PhobosCacheKey];
XCTAssertTrue(array.count != 0, @"PhobosCacheKey 下面应该有数据");
NSDictionary *dic = array[0][@"params"];
XCTAssertTrue(dic[@"page_name"] != nil, @"page_name至少使用默认的空字符串");
XCTAssertTrue(dic[@"referer"] != nil, @"referer至少使用默认的空字符串");
XCTAssertTrue(dic[@"business_id"] != nil, @"business_id至少使用默认的空字符串");
}
@end @end
...@@ -95,7 +95,7 @@ static NSString *sdkVersion = @"110"; ...@@ -95,7 +95,7 @@ static NSString *sdkVersion = @"110";
} }
#pragma - mark notification handler #pragma mark - notification handler
/** /**
* @brief 设置对APP的通知监听 * @brief 设置对APP的通知监听
* *
...@@ -178,7 +178,7 @@ static NSString *sdkVersion = @"110"; ...@@ -178,7 +178,7 @@ static NSString *sdkVersion = @"110";
} }
#pragma - mark track event handler #pragma mark - track event handler
+ (void)track:(NSString *)eventId{ + (void)track:(NSString *)eventId{
[Phobos track:eventId attributes:@{}]; [Phobos track:eventId attributes:@{}];
} }
...@@ -225,17 +225,12 @@ static NSString *sdkVersion = @"110"; ...@@ -225,17 +225,12 @@ static NSString *sdkVersion = @"110";
} }
} }
#pragma - mark pv #pragma mark - pv
- (void)onPageStart:(NSString *)pageName businessId:(NSString *)businessId referer:(NSString *)refererPageName{ - (void)onPageStart:(NSString *)pageName businessId:(NSString *)businessId referer:(NSString *)refererPageName{
self.businessId = [self isNonEmpty:businessId] ? businessId : @"";
self.refererPageName = [self isNonEmpty:refererPageName] ? refererPageName : @"";
if (![self isNonEmpty:pageName]) {
return;
}
_pageEnterParam = [NSMutableDictionary dictionaryWithObjectsAndKeys: _pageEnterParam = [NSMutableDictionary dictionaryWithObjectsAndKeys:
pageName,@"page_name", pageName?:@"",@"page_name",
self.businessId,@"business_id", self.businessId?:@"",@"business_id",
self.refererPageName,@"referer", self.refererPageName?:@"",@"referer",
[self currentTime],@"in",nil]; [self currentTime],@"in",nil];
} }
...@@ -243,10 +238,10 @@ static NSString *sdkVersion = @"110"; ...@@ -243,10 +238,10 @@ static NSString *sdkVersion = @"110";
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
@try { @try {
[dict setObject:[self currentTime] forKey:@"out"]; [dict setObject:[self currentTime] forKey:@"out"];
[dict setObject:@([_pageEnterParam[@"in"] doubleValue]) forKey:@"in"]; [dict setObject:@([_pageEnterParam[@"in"] doubleValue])?:@"" forKey:@"in"];
[dict setObject:_pageEnterParam[@"page_name"] forKey:@"page_name"]; [dict setObject:_pageEnterParam[@"page_name"]?:@"" forKey:@"page_name"];
[dict setObject:_pageEnterParam[@"business_id"] forKey:@"business_id"]; [dict setObject:_pageEnterParam[@"business_id"]?:@"" forKey:@"business_id"];
[dict setObject:_pageEnterParam[@"referer"] forKey:@"referer"]; [dict setObject:_pageEnterParam[@"referer"]?:@"" forKey:@"referer"];
[dict setObject:@(0) forKey:@"fake"]; [dict setObject:@(0) forKey:@"fake"];
[Phobos track:@"page_view" attributes:dict]; [Phobos track:@"page_view" attributes:dict];
...@@ -262,9 +257,9 @@ static NSString *sdkVersion = @"110"; ...@@ -262,9 +257,9 @@ static NSString *sdkVersion = @"110";
@try { @try {
[dict setObject:[self currentTime] forKey:@"in"]; [dict setObject:[self currentTime] forKey:@"in"];
[dict setObject:[self currentTime] forKey:@"out"]; [dict setObject:[self currentTime] forKey:@"out"];
[dict setObject:pageName forKey:@"page_name"]; [dict setObject:pageName?:@"" forKey:@"page_name"];
[dict setObject:bid forKey:@"business_id"]; [dict setObject:bid?:@"" forKey:@"business_id"];
[dict setObject:referer forKey:@"referer"]; [dict setObject:referer?:@"" forKey:@"referer"];
[dict setObject:@(1) forKey:@"fake"]; [dict setObject:@(1) forKey:@"fake"];
[Phobos track:@"page_view" attributes:dict]; [Phobos track:@"page_view" attributes:dict];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment