+ value = resultMap.Find(DevelArcVisual::Property::SWEEP_ANGLE, Property::FLOAT);
+ DALI_TEST_CHECK(value);
+ DALI_TEST_EQUALS(value->Get<float>(), sweepAngle, TEST_LOCATION);
+
+ value = resultMap.Find(DevelArcVisual::Property::CAP, Property::INTEGER);
+ DALI_TEST_CHECK(value);
+ DALI_TEST_CHECK(value->Get<int>() == DevelArcVisual::Cap::ROUND);
+
+ END_TEST;
+}
+
+int UtcDaliArcVisualUpdateProperty(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline("UtcDaliArcVisualUpdateProperty");
+
+ static std::vector<UniformData> customUniforms =
+ {
+ UniformData("thickness", Property::Type::FLOAT),
+ UniformData("startAngle", Property::Type::FLOAT),
+ UniformData("sweepAngle", Property::Type::FLOAT),
+ };
+
+ TestGraphicsController& graphics = application.GetGraphicsController();
+ graphics.AddCustomUniforms(customUniforms);
+
+ TestGlAbstraction& gl = application.GetGlAbstraction();
+
+ float thickness = 20.0f;
+ float startAngle = 0.0f;
+ float sweepAngle = 90.0f;
+
+ Property::Map propertyMap;
+ propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ARC)
+ .Add(Visual::Property::MIX_COLOR, Color::RED)
+ .Add(DevelArcVisual::Property::THICKNESS, thickness)
+ .Add(DevelArcVisual::Property::START_ANGLE, startAngle)
+ .Add(DevelArcVisual::Property::SWEEP_ANGLE, sweepAngle);
+
+ Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap);
+ DALI_TEST_CHECK(visual);
+
+ DummyControl actor = DummyControl::New(true);
+ DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+ dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual);
+
+ actor.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 200.0f));
+ application.GetScene().Add(actor);
+
+ application.SendNotification();
+ application.Render();
+
+ Property::Map map = actor.GetProperty<Property::Map>(DummyControl::Property::TEST_VISUAL);
+ Property::Value* value = map.Find(DevelArcVisual::Property::THICKNESS, Property::FLOAT);
+ DALI_TEST_EQUALS(value->Get<float>(), thickness, TEST_LOCATION);
+ DALI_TEST_EQUALS(gl.CheckUniformValue<float>("thickness", thickness), true, TEST_LOCATION);
+
+ value = map.Find(DevelArcVisual::Property::START_ANGLE, Property::FLOAT);
+ DALI_TEST_EQUALS(value->Get<float>(), startAngle, TEST_LOCATION);
+ DALI_TEST_EQUALS(gl.CheckUniformValue<float>("startAngle", startAngle), true, TEST_LOCATION);
+
+ value = map.Find(DevelArcVisual::Property::SWEEP_ANGLE, Property::FLOAT);
+ DALI_TEST_EQUALS(value->Get<float>(), sweepAngle, TEST_LOCATION);
+ DALI_TEST_EQUALS(gl.CheckUniformValue<float>("sweepAngle", sweepAngle), true, TEST_LOCATION);
+
+ thickness = 10.0f;
+ startAngle = 90.0f;
+ sweepAngle = 180.0f;
+
+ Property::Map attributes;
+ attributes.Add(DevelArcVisual::Property::THICKNESS, thickness)
+ .Add(DevelArcVisual::Property::START_ANGLE, startAngle)
+ .Add(DevelArcVisual::Property::SWEEP_ANGLE, sweepAngle);
+
+ DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes);
+
+ application.SendNotification();
+ application.Render();