#include "pdf/pdf_ink_cursor.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkColor.h"
namespace chrome_pdf {
namespace {
TEST(PdfInkCursorTest, CursorDiameterFromBrushSizeAndZoom) {
EXPECT_EQ(6, CursorDiameterFromBrushSizeAndZoom(1.0f,
1.0f));
EXPECT_EQ(6, CursorDiameterFromBrushSizeAndZoom(2.0f,
1.0f));
EXPECT_EQ(6, CursorDiameterFromBrushSizeAndZoom(4.0f,
1.0f));
EXPECT_EQ(7, CursorDiameterFromBrushSizeAndZoom(5.0f,
1.0f));
EXPECT_EQ(8, CursorDiameterFromBrushSizeAndZoom(6.0f,
1.0f));
EXPECT_EQ(11, CursorDiameterFromBrushSizeAndZoom(9.0f,
1.0f));
EXPECT_EQ(14, CursorDiameterFromBrushSizeAndZoom(10.0f,
1.0f));
EXPECT_EQ(15, CursorDiameterFromBrushSizeAndZoom(11.0f,
1.0f));
EXPECT_EQ(20, CursorDiameterFromBrushSizeAndZoom(16.0f,
1.0f));
EXPECT_EQ(6, CursorDiameterFromBrushSizeAndZoom(1.0f,
0.25f));
EXPECT_EQ(7, CursorDiameterFromBrushSizeAndZoom(1.0f,
5.0f));
EXPECT_EQ(6, CursorDiameterFromBrushSizeAndZoom(5.0f,
0.5f));
EXPECT_EQ(19, CursorDiameterFromBrushSizeAndZoom(5.0f,
3.0f));
EXPECT_EQ(6, CursorDiameterFromBrushSizeAndZoom(9.0f,
0.33f));
EXPECT_EQ(32, CursorDiameterFromBrushSizeAndZoom(9.0f,
4.0f));
EXPECT_EQ(6, CursorDiameterFromBrushSizeAndZoom(10.0f,
0.25f));
EXPECT_EQ(24, CursorDiameterFromBrushSizeAndZoom(10.0f,
2.0f));
EXPECT_EQ(32, CursorDiameterFromBrushSizeAndZoom(10.0f,
3.0f));
EXPECT_EQ(32, CursorDiameterFromBrushSizeAndZoom(16.0f,
5.0f));
}
TEST(PdfInkCursorTest, GenerateToolCursor) {
{
SkBitmap bitmap = GenerateToolCursor(SK_ColorBLACK, 6);
ASSERT_EQ(6, bitmap.width());
ASSERT_EQ(6, bitmap.height());
ASSERT_FALSE(bitmap.drawsNothing());
EXPECT_EQ(SkColorSetARGB(0x18, 0xAA, 0xAA, 0xAA), bitmap.getColor(0, 0));
EXPECT_EQ(SK_ColorBLACK, bitmap.getColor(3, 3));
EXPECT_EQ(SkColorSetARGB(0x18, 0xAA, 0xAA, 0xAA), bitmap.getColor(5, 0));
}
{
SkBitmap bitmap = GenerateToolCursor(SK_ColorRED, 8);
ASSERT_EQ(8, bitmap.width());
ASSERT_EQ(8, bitmap.height());
ASSERT_FALSE(bitmap.drawsNothing());
EXPECT_EQ(SK_ColorTRANSPARENT, bitmap.getColor(0, 0));
EXPECT_EQ(SK_ColorRED, bitmap.getColor(4, 4));
EXPECT_EQ(SkColorSetARGB(0xF0, 0xAA, 0xAA, 0xAA), bitmap.getColor(7, 4));
}
{
SkBitmap bitmap = GenerateToolCursor(SK_ColorWHITE, 20);
ASSERT_EQ(20, bitmap.width());
ASSERT_EQ(20, bitmap.height());
ASSERT_FALSE(bitmap.drawsNothing());
EXPECT_EQ(SK_ColorTRANSPARENT, bitmap.getColor(0, 0));
EXPECT_EQ(SK_ColorWHITE, bitmap.getColor(10, 10));
EXPECT_EQ(SkColorSetARGB(0xE8, 0x90, 0x90, 0x90), bitmap.getColor(19, 10));
}
}
}
}