| Index: ios/chrome/browser/ui/collection_view/collection_view_controller_test.h
|
| diff --git a/ios/chrome/browser/ui/collection_view/collection_view_controller_test.h b/ios/chrome/browser/ui/collection_view/collection_view_controller_test.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ee738881676c6e56c98d22e7dc07553f2a136b3e
|
| --- /dev/null
|
| +++ b/ios/chrome/browser/ui/collection_view/collection_view_controller_test.h
|
| @@ -0,0 +1,128 @@
|
| +// Copyright 2016 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.
|
| +
|
| +#ifndef IOS_CHROME_BROWSER_UI_COLLECTION_VIEW_COLLECTION_VIEW_CONTROLLER_TEST_H_
|
| +#define IOS_CHROME_BROWSER_UI_COLLECTION_VIEW_COLLECTION_VIEW_CONTROLLER_TEST_H_
|
| +
|
| +#import <Foundation/Foundation.h>
|
| +
|
| +#include "base/compiler_specific.h"
|
| +#import "base/ios/block_types.h"
|
| +#import "base/mac/scoped_nsobject.h"
|
| +#import "ios/chrome/test/block_cleanup_test.h"
|
| +#import "ios/third_party/material_components_ios/src/components/CollectionCells/src/MaterialCollectionCells.h"
|
| +
|
| +@class CollectionViewController;
|
| +
|
| +class CollectionViewControllerTest : public BlockCleanupTest {
|
| + public:
|
| + CollectionViewControllerTest();
|
| + ~CollectionViewControllerTest() override;
|
| +
|
| + protected:
|
| + void TearDown() override;
|
| +
|
| + // Derived classes allocate their controller here.
|
| + virtual CollectionViewController* NewController() NS_RETURNS_RETAINED = 0;
|
| +
|
| + // Tests should call this function to create their controller for testing.
|
| + void CreateController();
|
| +
|
| + // Will call CreateController() if |controller_| is nil.
|
| + CollectionViewController* controller();
|
| +
|
| + // Deletes the controller.
|
| + void ResetController();
|
| +
|
| + // Tests that the controller's view, model, collectionView, and delegate are
|
| + // valid. Also tests that the model is the collectionView's data source.
|
| + void CheckController();
|
| +
|
| + // Returns the number of sections in the collectionView.
|
| + int NumberOfSections();
|
| +
|
| + // Returns the number of items in |section|.
|
| + int NumberOfItemsInSection(int section);
|
| +
|
| + // Returns the collection view item at |item| in |section|.
|
| + id GetCollectionViewItem(int section, int item);
|
| +
|
| + // Verifies that the title matches |expected_title|.
|
| + void CheckTitle(NSString* expected_title);
|
| +
|
| + // Verifies that the title matches the l10n string for |expected_title_id|.
|
| + void CheckTitleWithId(int expected_title_id);
|
| +
|
| + // Verifies that the section title at |section| matches the |expected_title|.
|
| + void CheckSectionHeader(NSString* expected_title, int section);
|
| +
|
| + // Verifies that the section title at |section| matches the l10n string for
|
| + // |expected_title_id|.
|
| + void CheckSectionHeaderWithId(int expected_title_id, int section);
|
| +
|
| + // Verifies that the section footer at |section| matches the |expected_text|.
|
| + // TODO(crbug.com/650424): Until the bug in MDC is fixed, footers are simple
|
| + // items in a dedicated section.
|
| + void CheckSectionFooter(NSString* expected_text, int section);
|
| +
|
| + // Verifies that the section footer at |section| matches the l10n string for
|
| + // |expected_text_id|.
|
| + // TODO(crbug.com/650424): Until the bug in MDC is fixed, footers are simple
|
| + // items in a dedicated section.
|
| + void CheckSectionFooterWithId(int expected_text_id, int section);
|
| +
|
| + // Verifies that the text cell at |item| in |section| has a title which
|
| + // matches |expected_title|.
|
| + void CheckTextCellTitle(NSString* expected_title, int section, int item);
|
| +
|
| + // Verifies that the text cell at |item| in |section| has a title which
|
| + // matches the l10n string for |expected_title_id|.
|
| + void CheckTextCellTitleWithId(int expected_title_id, int section, int item);
|
| +
|
| + // Verifies that the text cell at |item| in |section| has a title and subtitle
|
| + // which match strings for |expected_title| and |expected_subtitle|,
|
| + // respectively.
|
| + void CheckTextCellTitleAndSubtitle(NSString* expected_title,
|
| + NSString* expected_subtitle,
|
| + int section,
|
| + int item);
|
| +
|
| + // Verifies that the text cell at |item| in |section| has a title and subtitle
|
| + // which match strings for |expected_title| and |expected_subtitle|,
|
| + // respectively.
|
| + void CheckDetailItemTextWithIds(int expected_text_id,
|
| + int expected_detail_text_id,
|
| + int section_id,
|
| + int item_id);
|
| +
|
| + // Verifies that the switch cell at |item| in |section| has a title which
|
| + // matches |expected_title| and is currently in |state|.
|
| + void CheckSwitchCellStateAndTitle(BOOL expected_state,
|
| + NSString* expected_title,
|
| + int section,
|
| + int item);
|
| +
|
| + // Verifies that the switch cell at |item| in |section| has a title which
|
| + // matches the l10n string for |expected_title_id| and is currently in
|
| + // |state|.
|
| + void CheckSwitchCellStateAndTitleWithId(BOOL expected_state,
|
| + int expected_title_id,
|
| + int section,
|
| + int item);
|
| +
|
| + // Verifies that the cell at |item| in |section| has the given
|
| + // |accessory_type|.
|
| + void CheckAccessoryType(MDCCollectionViewCellAccessoryType accessory_type,
|
| + int section,
|
| + int item);
|
| +
|
| + // For |section|, deletes the item at |item|. |completion_block| is called at
|
| + // the end of the call to -performBatchUpdates:completion:.
|
| + void DeleteItem(int section, int item, ProceduralBlock completion_block);
|
| +
|
| + private:
|
| + base::scoped_nsobject<CollectionViewController> controller_;
|
| +};
|
| +
|
| +#endif // IOS_CHROME_BROWSER_UI_COLLECTION_VIEW_COLLECTION_VIEW_CONTROLLER_TEST_H_
|
|
|