mock_location_settings.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright 2015 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef COMPONENTS_LOCATION_ANDROID_MOCK_LOCATION_SETTINGS_H_
  5. #define COMPONENTS_LOCATION_ANDROID_MOCK_LOCATION_SETTINGS_H_
  6. #include "components/location/android/location_settings.h"
  7. #include "components/location/android/location_settings_dialog_context.h"
  8. #include "components/location/android/location_settings_dialog_outcome.h"
  9. // Mock implementation of LocationSettings for unit tests.
  10. class MockLocationSettings : public LocationSettings {
  11. public:
  12. MockLocationSettings();
  13. MockLocationSettings(const MockLocationSettings&) = delete;
  14. MockLocationSettings& operator=(const MockLocationSettings&) = delete;
  15. ~MockLocationSettings() override;
  16. static void SetLocationStatus(bool has_android_location_permission,
  17. bool is_system_location_setting_enabled);
  18. static void SetCanPromptForAndroidPermission(bool can_prompt);
  19. static void SetLocationSettingsDialogStatus(
  20. bool enabled,
  21. LocationSettingsDialogOutcome outcome);
  22. static bool HasShownLocationSettingsDialog();
  23. static void ClearHasShownLocationSettingsDialog();
  24. static void SetAsyncLocationSettingsDialog();
  25. static void ResolveAsyncLocationSettingsDialog();
  26. // LocationSettings implementation:
  27. bool HasAndroidLocationPermission() override;
  28. bool CanPromptForAndroidLocationPermission(
  29. ui::WindowAndroid* window) override;
  30. bool IsSystemLocationSettingEnabled() override;
  31. bool CanPromptToEnableSystemLocationSetting() override;
  32. void PromptToEnableSystemLocationSetting(
  33. const LocationSettingsDialogContext prompt_context,
  34. ui::WindowAndroid* window,
  35. LocationSettingsDialogOutcomeCallback callback) override;
  36. };
  37. #endif // COMPONENTS_LOCATION_ANDROID_MOCK_LOCATION_SETTINGS_H_