add asABlur() to maskfilters, so devices like gpu and pdf can query them.



git-svn-id: http://skia.googlecode.com/svn/trunk@1816 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/BlurTest.cpp b/tests/BlurTest.cpp
new file mode 100644
index 0000000..c960ff2
--- /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)