aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/BlurTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/BlurTest.cpp')
-rw-r--r--tests/BlurTest.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/BlurTest.cpp b/tests/BlurTest.cpp
new file mode 100644
index 0000000000..c960ff2eea
--- /dev/null
+++ b/tests/BlurTest.cpp
@@ -0,0 +1,35 @@
+#include "Test.h"
+#include "SkBlurMaskFilter.h"
+#include "SkRandom.h"
+
+///////////////////////////////////////////////////////////////////////////////
+
+#define ILLEGAL_MODE ((SkXfermode::Mode)-1)
+
+static void test_blur(skiatest::Reporter* reporter) {
+ SkScalar radius = SkIntToScalar(2);
+
+ for (int i = 0; i < SkBlurMaskFilter::kBlurStyleCount; ++i) {
+ SkMaskFilter* filter;
+ SkMaskFilter::BlurInfo info;
+
+ uint32_t flags = i & 3;
+
+ filter = SkBlurMaskFilter::Create(radius, (SkBlurMaskFilter::BlurStyle)i,
+ flags);
+
+ sk_bzero(&info, sizeof(info));
+ SkMaskFilter::BlurType type = filter->asABlur(&info);
+ REPORTER_ASSERT(reporter, type == (SkMaskFilter::BlurType)(i + 1));
+ REPORTER_ASSERT(reporter, info.fRadius == radius);
+ REPORTER_ASSERT(reporter, info.fIgnoreTransform ==
+ SkToBool(flags & SkBlurMaskFilter::kIgnoreTransform_BlurFlag));
+ REPORTER_ASSERT(reporter, info.fHighQuality ==
+ SkToBool(flags & SkBlurMaskFilter::kHighQuality_BlurFlag));
+
+ filter->unref();
+ }
+}
+
+#include "TestClassDef.h"
+DEFINE_TESTCLASS("BlurMaskFilter", BlurTestClass, test_blur)