chromium/ios/chrome/browser/default_browser/model/utils_test_support.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_BROWSER_DEFAULT_BROWSER_MODEL_UTILS_TEST_SUPPORT_H_
#define IOS_CHROME_BROWSER_DEFAULT_BROWSER_MODEL_UTILS_TEST_SUPPORT_H_

#import <Foundation/Foundation.h>

#import "base/time/time.h"
#import "ios/chrome/browser/default_browser/model/utils.h"

// Clear all default browser promo data for testing.
void ClearDefaultBrowserPromoData();

// Sets a timestamp into NSUserDefaults storage under the default browser utils
// key. Replaces the entire dictionary, so any existing entries are erased.
void ResetStorageAndSetTimestampForKey(NSString* key, base::Time timestamp);

// Overwrites the dictionary under the default browser utils key with the
// provided one.
void SetValuesInStorage(NSDictionary<NSString*, NSObject*>* data);

// Overwrite local storage with the provided interaction information.
void SimulateUserInteractionWithPromos(const base::TimeDelta& timeAgo,
                                       BOOL interactedWithFRE,
                                       int genericCount,
                                       int tailoredCount,
                                       int totalCount);

// Overwrite local storage with the provided promo interest information.
void SimulateUserInterestedDefaultBrowserUserActivity(
    DefaultPromoType type,
    const base::TimeDelta& timeAgo);

#endif  // IOS_CHROME_BROWSER_DEFAULT_BROWSER_MODEL_UTILS_TEST_SUPPORT_H_