1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_FORM_DATA_H_ 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_FORM_DATA_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "testing/gmock/include/gmock/gmock.h" 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "webkit/glue/password_form.h" 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Struct used for creation of PasswordForms from static arrays of data. 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Note: This is only meant to be used in unit test. 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstruct PasswordFormData { 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const webkit_glue::PasswordForm::Scheme scheme; 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* signon_realm; 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* origin; 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* action; 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* submit_element; 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* username_element; 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* password_element; 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* username_value; // Set to NULL for a blacklist entry. 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const wchar_t* password_value; 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const bool preferred; 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const bool ssl_valid; 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const double creation_time; 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Creates and returns a new PasswordForm built from form_data. Caller is 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// responsible for deleting the object when finished with it. 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochwebkit_glue::PasswordForm* CreatePasswordFormFromData( 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const PasswordFormData& form_data); 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 34731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Checks whether two vectors of PasswordForms contain equivalent elements, 35731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// regardless of order. 36731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickbool ContainsSamePasswordFormsPtr( 37731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick const std::vector<webkit_glue::PasswordForm*>& first, 38731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick const std::vector<webkit_glue::PasswordForm*>& second); 39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 40731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickbool ContainsSamePasswordForms( 41731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick std::vector<webkit_glue::PasswordForm>& first, 42731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick std::vector<webkit_glue::PasswordForm>& second); 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// This gmock matcher is used to check that the |arg| contains exactly the same 45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// PasswordForms as |forms|, regardless of order. 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochMATCHER_P(ContainsAllPasswordForms, forms, "") { 47731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick return ContainsSamePasswordFormsPtr(forms, arg); 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_FORM_DATA_H_ 51