Respond to CR; add db utility methods to test base classes.

pull/1/head
Matthew Chen 6 years ago
parent 559c496ae5
commit 98630cca50

@ -487,7 +487,6 @@
B633C5C41A1D190B0059AC12 /* mute_on@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B633C5421A1D190B0059AC12 /* mute_on@2x.png */; };
B633C5CE1A1D190B0059AC12 /* quit@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B633C54C1A1D190B0059AC12 /* quit@2x.png */; };
B633C5D21A1D190B0059AC12 /* savephoto@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B633C5501A1D190B0059AC12 /* savephoto@2x.png */; };
B660F6BB1C29868000687D6E /* OWSContactsManagerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B660F6761C29867F00687D6E /* OWSContactsManagerTest.m */; };
B660F6D21C29868000687D6E /* PushManagerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B660F69C1C29868000687D6E /* PushManagerTest.m */; };
B660F6D41C29868000687D6E /* whisperFake.cer in Resources */ = {isa = PBXBuildFile; fileRef = B660F69F1C29868000687D6E /* whisperFake.cer */; };
B660F6DB1C29868000687D6E /* FunctionalUtilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B660F6AD1C29868000687D6E /* FunctionalUtilTest.m */; };
@ -1191,7 +1190,6 @@
B646D1141AA54674004133BA /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = translations/hu.lproj/Localizable.strings; sourceTree = "<group>"; };
B646D1151AA5467E004133BA /* it_IT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it_IT; path = translations/it_IT.lproj/Localizable.strings; sourceTree = "<group>"; };
B657DDC91911A40500F45B0C /* Signal.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Signal.entitlements; sourceTree = "<group>"; };
B660F6761C29867F00687D6E /* OWSContactsManagerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSContactsManagerTest.m; sourceTree = "<group>"; };
B660F69C1C29868000687D6E /* PushManagerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PushManagerTest.m; sourceTree = "<group>"; };
B660F69E1C29868000687D6E /* SignalTests-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "SignalTests-Info.plist"; sourceTree = "<group>"; };
B660F69F1C29868000687D6E /* whisperFake.cer */ = {isa = PBXFileReference; lastKnownFileType = file; path = whisperFake.cer; sourceTree = "<group>"; };
@ -2343,7 +2341,6 @@
B660F6751C29867F00687D6E /* contact */ = {
isa = PBXGroup;
children = (
B660F6761C29867F00687D6E /* OWSContactsManagerTest.m */,
954AEE681DF33D32002E5410 /* ContactsPickerTest.swift */,
);
path = contact;
@ -3493,7 +3490,6 @@
4C3EF802210918740007EBF7 /* SSKProtoEnvelopeTest.swift in Sources */,
452D1AF12081059C00A67F7F /* StringAdditionsTest.swift in Sources */,
4C4BC6C32102D697004040C9 /* ContactDiscoveryOperationTest.swift in Sources */,
B660F6BB1C29868000687D6E /* OWSContactsManagerTest.m in Sources */,
B660F6D21C29868000687D6E /* PushManagerTest.m in Sources */,
455AC69E1F4F8B0300134004 /* ImageCacheTest.swift in Sources */,
34E8A8D12085238A00B272B1 /* ProtoParsingTest.m in Sources */,

@ -5,11 +5,16 @@
#import "MockEnvironment.h"
#import <SignalServiceKit/MockSSKEnvironment.h>
#import <XCTest/XCTest.h>
#import <YapDatabase/YapDatabaseConnection.h>
NS_ASSUME_NONNULL_BEGIN
@interface SignalBaseTest : XCTestCase
- (void)readWithBlock:(void (^)(YapDatabaseReadTransaction *transaction))block;
- (void)readWriteWithBlock:(void (^)(YapDatabaseReadWriteTransaction *transaction))block;
@end
NS_ASSUME_NONNULL_END

@ -40,6 +40,21 @@ NS_ASSUME_NONNULL_BEGIN
[super tearDown];
}
- (void)readWithBlock:(void (^)(YapDatabaseReadTransaction *transaction))block
{
OWSAssert(block);
[[SSKEnvironment.shared.primaryStorage newDatabaseConnection] readWithBlock:block];
}
- (void)readWriteWithBlock:(void (^)(YapDatabaseReadWriteTransaction *transaction))block
{
OWSAssert(block);
[[SSKEnvironment.shared.primaryStorage newDatabaseConnection] readWriteWithBlock:block];
}
@end
NS_ASSUME_NONNULL_END

@ -45,7 +45,7 @@
[TSOutgoingMessage outgoingMessageInThread:self.thread messageBody:self.fakeTextMessageText attachmentId:nil];
[message save];
__block ConversationViewItem *viewItem = nil;
[TSYapDatabaseObject.dbReadConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *transaction) {
viewItem = [[ConversationViewItem alloc] initWithInteraction:message
isGroupThread:NO
transaction:transaction
@ -75,7 +75,7 @@
[message save];
__block ConversationViewItem *viewItem = nil;
[TSYapDatabaseObject.dbReadConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *transaction) {
viewItem = [[ConversationViewItem alloc] initWithInteraction:message
isGroupThread:NO
transaction:transaction

@ -1,16 +0,0 @@
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "SignalBaseTest.h"
#import "TestUtil.h"
#import <SignalMessaging/OWSContactsManager.h>
@interface OWSContactsManagerTest : SignalBaseTest
@end
@implementation OWSContactsManagerTest
@end

@ -9,7 +9,7 @@
@interface TSPreKeyManager (Testing)
+ (void)clearSignedPreKeyRecordsWithKeyId:(NSNumber *)keyId success:(void (^_Nullable)())successHandler;
+ (void)clearSignedPreKeyRecordsWithKeyId:(NSNumber *)keyId success:(void (^_Nullable)(void))successHandler;
@end
@ -28,7 +28,7 @@
}
- (void)testSignedPreKeyDeletion {
[[OWSPrimaryStorage sharedManager].dbReadWriteConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *transaction) {
XCTAssertEqual(0, [transaction numberOfKeysInCollection:OWSPrimaryStorageSignedPreKeyStoreCollection]);
}];
@ -66,7 +66,7 @@
- (void)testSignedPreKeyDeletionKeepsSomeOldKeys
{
[[OWSPrimaryStorage sharedManager].dbReadWriteConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *transaction) {
XCTAssertEqual(0, [transaction numberOfKeysInCollection:OWSPrimaryStorageSignedPreKeyStoreCollection]);
}];
@ -110,7 +110,7 @@
- (void)testOlderRecordsNotDeletedIfNoReplacement {
[[OWSPrimaryStorage sharedManager].dbReadConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *transaction) {
XCTAssertEqual(0, [transaction numberOfKeysInCollection:OWSPrimaryStorageSignedPreKeyStoreCollection]);
}];

@ -42,24 +42,11 @@
// Sanity Check
XCTAssertNotNil(self.localNumber);
[OWSPrimaryStorage.sharedManager.dbReadWriteConnection
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[SignalRecipient markRecipientAsRegisteredAndGet:self.localNumber transaction:transaction];
[self readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[SignalRecipient markRecipientAsRegisteredAndGet:self.localNumber transaction:transaction];
XCTAssertTrue([SignalRecipient isRegisteredRecipient:self.localNumber transaction:transaction]);
}];
}
- (void)testSelfRecipientWithoutExistingRecord
{
XCTAssertNotNil(self.localNumber);
[OWSPrimaryStorage.sharedManager.dbReadWriteConnection
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[[SignalRecipient fetchObjectWithUniqueID:self.localNumber] removeWithTransaction:transaction];
XCTAssertFalse([SignalRecipient isRegisteredRecipient:self.localNumber transaction:transaction]);
}];
XCTAssertTrue([SignalRecipient isRegisteredRecipient:self.localNumber transaction:transaction]);
}];
}
@end

@ -43,10 +43,9 @@ NS_ASSUME_NONNULL_BEGIN
groupMetaMessage:TSGroupMetaMessageUnspecified
quotedMessage:nil
contactShare:nil];
[[OWSPrimaryStorage sharedManager].dbReadWriteConnection
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
XCTAssertFalse([message shouldStartExpireTimerWithTransaction:transaction]);
}];
[self readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
XCTAssertFalse([message shouldStartExpireTimerWithTransaction:transaction]);
}];
}
- (void)testShouldStartExpireTimerWithSentMessage
@ -62,11 +61,10 @@ NS_ASSUME_NONNULL_BEGIN
groupMetaMessage:TSGroupMetaMessageUnspecified
quotedMessage:nil
contactShare:nil];
[[OWSPrimaryStorage sharedManager].dbReadWriteConnection
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[message updateWithSentRecipient:self.contactId transaction:transaction];
XCTAssertTrue([message shouldStartExpireTimerWithTransaction:transaction]);
}];
[self readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[message updateWithSentRecipient:self.contactId transaction:transaction];
XCTAssertTrue([message shouldStartExpireTimerWithTransaction:transaction]);
}];
}
- (void)testShouldNotStartExpireTimerWithUnsentMessage
@ -82,10 +80,9 @@ NS_ASSUME_NONNULL_BEGIN
groupMetaMessage:TSGroupMetaMessageUnspecified
quotedMessage:nil
contactShare:nil];
[[OWSPrimaryStorage sharedManager].dbReadWriteConnection
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
XCTAssertFalse([message shouldStartExpireTimerWithTransaction:transaction]);
}];
[self readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
XCTAssertFalse([message shouldStartExpireTimerWithTransaction:transaction]);
}];
}
- (void)testShouldNotStartExpireTimerWithAttemptingOutMessage
@ -101,11 +98,10 @@ NS_ASSUME_NONNULL_BEGIN
groupMetaMessage:TSGroupMetaMessageUnspecified
quotedMessage:nil
contactShare:nil];
[[OWSPrimaryStorage sharedManager].dbReadWriteConnection
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[message updateWithMarkingAllUnsentRecipientsAsSendingWithTransaction:transaction];
XCTAssertFalse([message shouldStartExpireTimerWithTransaction:transaction]);
}];
[self readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[message updateWithMarkingAllUnsentRecipientsAsSendingWithTransaction:transaction];
XCTAssertFalse([message shouldStartExpireTimerWithTransaction:transaction]);
}];
}
#endif

@ -26,7 +26,6 @@ NS_ASSUME_NONNULL_BEGIN
@interface OWSDisappearingMessageFinderTest : SSKBaseTest
@property (nonatomic, nullable) YapDatabaseConnection *dbConnection;
@property (nonatomic, nullable) OWSDisappearingMessagesFinder *finder;
@property (nonatomic, nullable) TSThread *thread;
@property (nonatomic) uint64_t now;
@ -39,19 +38,10 @@ NS_ASSUME_NONNULL_BEGIN
#ifdef BROKEN_TESTS
- (OWSPrimaryStorage *)primaryStorage
{
OWSAssert(SSKEnvironment.shared.primaryStorage);
return SSKEnvironment.shared.primaryStorage;
}
- (void)setUp
{
[super setUp];
self.dbConnection = self.primaryStorage.newDatabaseConnection;
// TODO: This shouldn't be necessary.
// [OWSDisappearingMessagesFinder blockingRegisterDatabaseExtensions:self.primaryStorage];
@ -114,7 +104,7 @@ NS_ASSUME_NONNULL_BEGIN
[unExpiringMessage2 save];
__block NSArray<TSMessage *> *actualMessages;
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *transaction) {
actualMessages = [self.finder fetchExpiredMessagesWithTransaction:transaction];
}];
@ -143,7 +133,7 @@ NS_ASSUME_NONNULL_BEGIN
[unExpiringMessage2 save];
__block NSArray<TSMessage *> *actualMessages;
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *transaction) {
actualMessages = [self.finder fetchUnstartedExpiringMessagesInThread:self.thread
transaction:transaction];
}];
@ -156,7 +146,7 @@ NS_ASSUME_NONNULL_BEGIN
{
__block NSNumber *nextExpirationTimestamp;
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *transaction) {
XCTAssertNotNil(self.finder);
nextExpirationTimestamp = [self.finder nextExpirationTimestampWithTransaction:transaction];
}];

@ -96,7 +96,7 @@ NS_ASSUME_NONNULL_BEGIN
TSMessage *expiringMessage = [self messageWithBody:@"notYetExpiredMessage" expiresInSeconds:20 expireStartedAt:0];
[expiringMessage save];
[SSKEnvironment.shared.primaryStorage.dbReadWriteConnection
[self
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[job becomeConsistentWithConfigurationForMessage:expiringMessage
contactsManager:[OWSFakeContactsManager new]
@ -119,7 +119,7 @@ NS_ASSUME_NONNULL_BEGIN
TSMessage *unExpiringMessage = [self messageWithBody:@"unexpiringMessage" expiresInSeconds:0 expireStartedAt:0];
[unExpiringMessage save];
[SSKEnvironment.shared.primaryStorage.dbReadWriteConnection
[self
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[job becomeConsistentWithConfigurationForMessage:unExpiringMessage
contactsManager:[OWSFakeContactsManager new]

@ -22,7 +22,6 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic) NSString *sourceId;
@property (nonatomic) TSThread *thread;
@property (nonatomic) OWSIncomingMessageFinder *finder;
@property (nonatomic) YapDatabaseConnection *dbConnection;
@end
@ -34,7 +33,6 @@ NS_ASSUME_NONNULL_BEGIN
self.sourceId = @"+19999999999";
self.thread = [TSContactThread getOrCreateThreadWithContactId:self.sourceId];
self.finder = [OWSIncomingMessageFinder new];
self.dbConnection = [OWSPrimaryStorage sharedManager].dbReadConnection;
}
- (void)tearDown
@ -66,7 +64,7 @@ NS_ASSUME_NONNULL_BEGIN
uint64_t timestamp = 1234;
__block BOOL result;
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
result = [self.finder existsMessageWithTimestamp:timestamp
sourceId:self.sourceId
sourceDeviceId:OWSDevicePrimaryDeviceId
@ -82,7 +80,7 @@ NS_ASSUME_NONNULL_BEGIN
authorId:self.sourceId
sourceDeviceId:OWSDevicePrimaryDeviceId];
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
result = [self.finder existsMessageWithTimestamp:timestamp
sourceId:self.sourceId
sourceDeviceId:OWSDevicePrimaryDeviceId
@ -96,7 +94,7 @@ NS_ASSUME_NONNULL_BEGIN
authorId:@"some-other-author-id"
sourceDeviceId:OWSDevicePrimaryDeviceId];
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
result = [self.finder existsMessageWithTimestamp:timestamp
sourceId:self.sourceId
sourceDeviceId:OWSDevicePrimaryDeviceId
@ -109,7 +107,7 @@ NS_ASSUME_NONNULL_BEGIN
authorId:self.sourceId
sourceDeviceId:OWSDevicePrimaryDeviceId + 1];
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
result = [self.finder existsMessageWithTimestamp:timestamp
sourceId:self.sourceId
sourceDeviceId:OWSDevicePrimaryDeviceId
@ -120,7 +118,7 @@ NS_ASSUME_NONNULL_BEGIN
// The real deal...
[self createIncomingMessageWithTimestamp:timestamp authorId:self.sourceId sourceDeviceId:OWSDevicePrimaryDeviceId];
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
[self readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
result = [self.finder existsMessageWithTimestamp:timestamp
sourceId:self.sourceId
sourceDeviceId:OWSDevicePrimaryDeviceId

@ -4,6 +4,7 @@
#import "MockSSKEnvironment.h"
#import <XCTest/XCTest.h>
#import <YapDatabase/YapDatabaseConnection.h>
NS_ASSUME_NONNULL_BEGIN
@ -11,6 +12,10 @@ NS_ASSUME_NONNULL_BEGIN
@interface SSKBaseTest : XCTestCase
- (void)readWithBlock:(void (^)(YapDatabaseReadTransaction *transaction))block;
- (void)readWriteWithBlock:(void (^)(YapDatabaseReadWriteTransaction *transaction))block;
@end
#endif

@ -37,6 +37,21 @@ NS_ASSUME_NONNULL_BEGIN
[super tearDown];
}
- (void)readWithBlock:(void (^)(YapDatabaseReadTransaction *transaction))block
{
OWSAssert(block);
[[SSKEnvironment.shared.primaryStorage newDatabaseConnection] readWithBlock:block];
}
- (void)readWriteWithBlock:(void (^)(YapDatabaseReadWriteTransaction *transaction))block
{
OWSAssert(block);
[[SSKEnvironment.shared.primaryStorage newDatabaseConnection] readWriteWithBlock:block];
}
@end
#endif

@ -36,7 +36,7 @@ extern NSString *const OWSPrimaryStorageTrustedKeysCollection;
NSData *newKey = [Randomness generateRandomBytes:32];
NSString *recipientId = @"test@gmail.com";
[[OWSPrimaryStorage sharedManager].dbReadWriteConnection
[self
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
XCTAssert([[OWSIdentityManager sharedManager] isTrustedIdentityKey:newKey
recipientId:recipientId
@ -54,7 +54,7 @@ extern NSString *const OWSPrimaryStorageTrustedKeysCollection;
NSData *newKey = [Randomness generateRandomBytes:32];
NSString *recipientId = @"test@gmail.com";
[[OWSPrimaryStorage sharedManager].dbReadWriteConnection
[self
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[[OWSIdentityManager sharedManager] saveRemoteIdentity:newKey
recipientId:recipientId
@ -77,7 +77,7 @@ extern NSString *const OWSPrimaryStorageTrustedKeysCollection;
NSData *originalKey = [Randomness generateRandomBytes:32];
NSString *recipientId = @"test@protonmail.com";
[[OWSPrimaryStorage sharedManager].dbReadWriteConnection
[self
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[[OWSIdentityManager sharedManager] saveRemoteIdentity:originalKey
recipientId:recipientId

@ -27,12 +27,11 @@
{
[super setUp];
[[OWSPrimaryStorage sharedManager].dbReadWriteConnection
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
self.thread = [TSContactThread getOrCreateThreadWithContactId:@"aStupidId" transaction:transaction];
[self readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
self.thread = [TSContactThread getOrCreateThreadWithContactId:@"aStupidId" transaction:transaction];
[self.thread saveWithTransaction:transaction];
}];
[self.thread saveWithTransaction:transaction];
}];
}
- (void)tearDown
@ -62,11 +61,10 @@
quotedMessage:nil
contactShare:nil];
[[OWSPrimaryStorage sharedManager].newDatabaseConnection
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[newMessage saveWithTransaction:transaction];
messageId = newMessage.uniqueId;
}];
[self readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[newMessage saveWithTransaction:transaction];
messageId = newMessage.uniqueId;
}];
TSIncomingMessage *fetchedMessage = [TSIncomingMessage fetchObjectWithUniqueID:messageId];
@ -129,8 +127,7 @@
@"privacy matters; privacy is what allows us to determine who we are and who we want to be.";
__block TSGroupThread *thread;
[[OWSPrimaryStorage sharedManager].dbReadWriteConnection readWriteWithBlock:^(
YapDatabaseReadWriteTransaction *transaction) {
[self readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
thread = [TSGroupThread getOrCreateThreadWithGroupModel:[[TSGroupModel alloc] initWithTitle:@"fdsfsd"
memberIds:[@[] mutableCopy]
image:nil

Loading…
Cancel
Save