mirror of
https://github.com/tappollo/IGListKit.git
synced 2026-01-13 08:50:40 +08:00
Summary: Got a little time on the plane to mess around with this idea. Very much want comments on this! Some questions: - We should probably compile out parts of this using `#if DEBUG`. - Should I compile out all of the description methods? - Maybe I wrap the entire debug files w/ `#if DEBUG ... #endif` so none of it is loaded? - ryanolsonk I used [FLEX](https://github.com/Flipboard/FLEX/blob/master/Classes/Utility/FLEXHeapEnumerator.m) for searching the heap, lmk if you see any problems w/ this - Its lifted w/ only a few changes for my specific needs (including comments 😂) - Chalk us up for using [another bit](https://github.com/Instagram/IGListKit/blob/master/Source/Internal/IGListAdapterProxy.m#L77-L82) of your code - Added a basic test so that the basics of this work and coverage doesn't tank - Anything else I should test? - Is there more data we should be dumping? - I have to track batch update state on the updater in order to dump it. If this seems dan Closes https://github.com/Instagram/IGListKit/pull/617 Reviewed By: jessesquires Differential Revision: D4929426 Pulled By: rnystrom fbshipit-source-id: fcba0d6f0b7766485440f208cf70ad39dfc7a42e
52 lines
2.6 KiB
Objective-C
52 lines
2.6 KiB
Objective-C
/**
|
|
* Copyright (c) 2016-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
#import <XCTest/XCTest.h>
|
|
|
|
#import <IGListKit/IGListKit.h>
|
|
|
|
#import "IGListDebugger.h"
|
|
#import "IGListAdapterUpdaterInternal.h"
|
|
#import "IGListTestAdapterDataSource.h"
|
|
#import "IGListMoveIndexInternal.h"
|
|
#import "IGListMoveIndexPathInternal.h"
|
|
|
|
@interface IGListDebuggerTests : XCTestCase
|
|
|
|
@end
|
|
|
|
@implementation IGListDebuggerTests
|
|
|
|
- (void)test_whenSearchingAdapterInstances_thatCorrectCountReturned {
|
|
UIViewController *controller = [UIViewController new];
|
|
UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:[UICollectionViewFlowLayout new]];
|
|
IGListAdapterUpdater *updater = [IGListAdapterUpdater new];
|
|
NSIndexPath *path = [NSIndexPath indexPathForItem:0 inSection:0];
|
|
updater.applyingUpdateData = [[IGListBatchUpdateData alloc] initWithInsertSections:[NSIndexSet indexSetWithIndex:1]
|
|
deleteSections:[NSIndexSet indexSetWithIndex:2]
|
|
moveSections:[NSSet setWithObject:[[IGListMoveIndex alloc] initWithFrom:3 to:4]]
|
|
insertIndexPaths:@[path]
|
|
deleteIndexPaths:@[path]
|
|
moveIndexPaths:@[[[IGListMoveIndexPath alloc] initWithFrom:path to:path]]];
|
|
IGListTestAdapterDataSource *dataSource = [IGListTestAdapterDataSource new];
|
|
dataSource.objects = @[@1, @2, @3];
|
|
IGListAdapter *adapter1 = [[IGListAdapter alloc] initWithUpdater:[IGListAdapterUpdater new] viewController:nil workingRangeSize:0];
|
|
adapter1.collectionView = collectionView;
|
|
adapter1.dataSource = dataSource;
|
|
IGListAdapter *adapter2 = [[IGListAdapter alloc] initWithUpdater:[IGListAdapterUpdater new] viewController:controller workingRangeSize:2];
|
|
adapter2.collectionView = collectionView;
|
|
IGListAdapter *adapter3 = [[IGListAdapter alloc] initWithUpdater:[IGListAdapterUpdater new] viewController:controller workingRangeSize:2];
|
|
adapter3.collectionView = collectionView;
|
|
|
|
NSArray *descriptions = [IGListDebugger adapterDescriptions];
|
|
XCTAssertEqual(descriptions.count, 3);
|
|
}
|
|
|
|
@end
|