12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/common/context_menu_params.h" 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/renderer/render_view_impl.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "ui/gfx/range/range.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace content { 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(RenderViewImplTest, ShouldUpdateSelectionTextFromContextMenuParams) { 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) struct { 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* selection_text; 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) size_t selection_text_offset; 1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range selection_range; 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* params_selection_text; 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool expected_result; 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } cases[] = { 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) { "test", 0, gfx::Range(0, 4), "test", false }, 2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) { "zebestest", 0, gfx::Range(2, 6), "best", false }, 2358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) { "zebestest", 2, gfx::Range(2, 6), "best", true }, 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) { "test", 0, gfx::Range(0, 4), "hello", true }, 2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) { "best test", 0, gfx::Range(0, 4), "best ", false }, 2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) { "best test", 0, gfx::Range(0, 5), "best", false }, 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) }; 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ContextMenuParams params; 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) { 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.selection_text = UTF8ToUTF16(cases[i].params_selection_text); 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(cases[i].expected_result, 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) RenderViewImpl::ShouldUpdateSelectionTextFromContextMenuParams( 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UTF8ToUTF16(cases[i].selection_text), 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) cases[i].selection_text_offset, 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) cases[i].selection_range, 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params)); 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace content 42