Movatterモバイル変換


[0]ホーム

URL:


Google Git
Sign in
chromium /chromium /src /refs/heads/main /. /pdf /parsed_params_unittest.cc
blob: 381294d7ec2837655760c9991848a67059ea0c0d [file] [log] [blame] [edit]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include"pdf/parsed_params.h"
#include<optional>
#include<string>
#include<vector>
#include"pdf/pdfium/pdfium_form_filler.h"
#include"testing/gmock/include/gmock/gmock.h"
#include"testing/gtest/include/gtest/gtest.h"
#include"third_party/blink/public/platform/web_string.h"
#include"third_party/blink/public/web/web_plugin_params.h"
#include"third_party/skia/include/core/SkColor.h"
namespace chrome_pdf{
namespace{
using::testing::AnyOf;
constexprchar kFakeSrcUrl[]="chrome-extension://fake-source-url";
// Creates a `blink::WebPluginParams` with only required attributes.
blink::WebPluginParamsCreateMinimalWebPluginParams(){
blink::WebPluginParams params;
params.attribute_names.push_back(blink::WebString("src"));
params.attribute_values.push_back(blink::WebString(kFakeSrcUrl));
return params;
}
}// namespace
TEST(ParsedParamsTest,ParseWebPluginParamsMinimal){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_EQ(kFakeSrcUrl, result->src_url);
EXPECT_EQ(kFakeSrcUrl, result->original_url);
EXPECT_EQ("", result->top_level_url);
EXPECT_FALSE(result->full_frame);
EXPECT_EQ(SK_ColorTRANSPARENT, result->background_color);
EXPECT_EQ(PDFiumFormFiller::DefaultScriptOption(), result->script_option);
EXPECT_FALSE(result->has_edits);
EXPECT_FALSE(result->use_skia);
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithoutSourceUrl){
blink::WebPluginParams params;
std::optional<ParsedParams> result=ParseWebPluginParams(params);
EXPECT_FALSE(result.has_value());
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithOriginalUrl){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("original-url"));
params.attribute_values.push_back(
blink::WebString("https://example.com/original.pdf"));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_EQ(kFakeSrcUrl, result->src_url);
EXPECT_EQ("https://example.com/original.pdf", result->original_url);
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithTopLevelUrl){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("top-level-url"));
params.attribute_values.push_back(
blink::WebString("https://example.net/top.html"));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_EQ("https://example.net/top.html", result->top_level_url);
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithFullFrame){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("full-frame"));
params.attribute_values.push_back(blink::WebString(""));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_TRUE(result->full_frame);
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithFullFrameNonEmpty){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("full-frame"));
params.attribute_values.push_back(blink::WebString("false"));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_TRUE(result->full_frame);
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithBackgroundColor){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("background-color"));
params.attribute_values.push_back(blink::WebString("4283586137"));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_EQ(4283586137, result->background_color);
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithInvalidBackgroundColor){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("background-color"));
params.attribute_values.push_back(blink::WebString("red"));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
EXPECT_FALSE(result.has_value());
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithJavascriptAllow){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("javascript"));
params.attribute_values.push_back(blink::WebString("allow"));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_THAT(result->script_option,
AnyOf(PDFiumFormFiller::ScriptOption::kJavaScript,
PDFiumFormFiller::ScriptOption::kJavaScriptAndXFA));
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithJavascriptEmpty){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("javascript"));
params.attribute_values.push_back(blink::WebString(""));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_EQ(PDFiumFormFiller::ScriptOption::kNoJavaScript,
result->script_option);
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithJavascriptNonEmpty){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("javascript"));
params.attribute_values.push_back(blink::WebString("true"));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_EQ(PDFiumFormFiller::ScriptOption::kNoJavaScript,
result->script_option);
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithHasEdits){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("has-edits"));
params.attribute_values.push_back(blink::WebString(""));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_TRUE(result->has_edits);
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithHasEditsNonEmpty){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("has-edits"));
params.attribute_values.push_back(blink::WebString("false"));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_TRUE(result->has_edits);
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithHasUseSkia){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("use-skia"));
params.attribute_values.push_back(blink::WebString(""));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_TRUE(result->use_skia);
}
TEST(ParsedParamsTest,ParseWebPluginParamsWithHasUseSkiaNonEmpty){
blink::WebPluginParams params=CreateMinimalWebPluginParams();
params.attribute_names.push_back(blink::WebString("use-skia"));
params.attribute_values.push_back(blink::WebString("false"));
std::optional<ParsedParams> result=ParseWebPluginParams(params);
ASSERT_TRUE(result.has_value());
EXPECT_TRUE(result->use_skia);
}
}// namespace chrome_pdf

[8]ページ先頭

©2009-2025 Movatter.jp