X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-scene3d%2Futc-Dali-Model.cpp;h=3ba8059479d99d15cbee9de2dd3f68713b3db872;hb=416c967b32519657cc2bb301c3087534e59e6af6;hp=e8a372c62f071396d7eb8e8cb0f02515ca1c34a3;hpb=c799d2969c05fa5bffbb92dd1069ac03b6902c38;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-scene3d/utc-Dali-Model.cpp b/automated-tests/src/dali-scene3d/utc-Dali-Model.cpp index e8a372c..3ba8059 100644 --- a/automated-tests/src/dali-scene3d/utc-Dali-Model.cpp +++ b/automated-tests/src/dali-scene3d/utc-Dali-Model.cpp @@ -1430,6 +1430,72 @@ int UtcDaliModelResourceReady(void) END_TEST; } +int UtcDaliModelResourceReady02(void) +{ + tet_infoline("Test model load successfully even if shader language version is low\n"); + ToolkitTestApplication application; + + auto originalShaderVersion = application.GetGlAbstraction().GetShaderLanguageVersion(); + + // Change the shader language version forcely! + application.GetGlAbstraction().mShaderLanguageVersion = 200; + + try + { + gOnRelayoutCallBackCalled = false; + gResourceReadyCalled = false; + Scene3D::Model model = Scene3D::Model::New(TEST_GLTF_MORPH_FILE_NAME); + model.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f)); + model.OnRelayoutSignal().Connect(OnRelayoutCallback); + model.ResourceReadySignal().Connect(OnResourceReady); + DALI_TEST_EQUALS(model.IsResourceReady(), false, TEST_LOCATION); + + // Sanity check + DALI_TEST_CHECK(!gOnRelayoutCallBackCalled); + DALI_TEST_CHECK(!gResourceReadyCalled); + + application.GetScene().Add(model); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS(gOnRelayoutCallBackCalled, false, TEST_LOCATION); + DALI_TEST_EQUALS(model.IsResourceReady(), true, TEST_LOCATION); + DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION); + + // Change material information, for line coverage. + auto modelNode = model.FindChildModelNodeByName("AnimatedMorphCube"); + DALI_TEST_CHECK(modelNode); + DALI_TEST_GREATER(modelNode.GetModelPrimitiveCount(), 0u, TEST_LOCATION); + auto modelPrimitive = modelNode.GetModelPrimitive(0u); + DALI_TEST_CHECK(modelPrimitive); + auto material = modelPrimitive.GetMaterial(); + DALI_TEST_CHECK(material); + + auto originBaseColorFactor = material.GetProperty(Dali::Scene3D::Material::Property::BASE_COLOR_FACTOR); + auto expectBaseColorFactor = Vector4(originBaseColorFactor.r + 0.05f, originBaseColorFactor.g - 0.05f, originBaseColorFactor.b, originBaseColorFactor.a); + material.SetProperty(Dali::Scene3D::Material::Property::BASE_COLOR_FACTOR, expectBaseColorFactor); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS(material.GetProperty(Dali::Scene3D::Material::Property::BASE_COLOR_FACTOR), expectBaseColorFactor, TEST_LOCATION); + } + catch(...) + { + DALI_TEST_CHECK(false); + } + + // Revert shader version. We should revert it even if UTC failed. + application.GetGlAbstraction().mShaderLanguageVersion = originalShaderVersion; + + END_TEST; +} + int UtcDaliModelResourceCacheCheck(void) { ToolkitTestApplication application;