-//
-// Copyright (c) 2014 Samsung Electronics Co., Ltd.
-//
-// Licensed under the Flora License, Version 1.0 (the License);
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://floralicense.org/license/
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an AS IS BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
#include <iostream>
#include <stdlib.h>
#include <dali-toolkit-test-suite-utils.h>
#include <dali-toolkit/public-api/builder/builder.h>
+#include <dali/integration-api/events/touch-event-integ.h>
using namespace Dali;
using namespace Toolkit;
return s;
}
+struct BuilderFunctor
+{
+ BuilderFunctor( bool& called ) : mCalled( called )
+ {
+ mCalled = false;
+ }
+
+ void operator()()
+ {
+ mCalled = true;
+ }
+
+ bool& mCalled;
+};
+
} // namespace
END_TEST;
}
+
+int UtcDaliBuilderCreateFromJson(void)
+{
+ ToolkitTestApplication application;
+
+ tet_infoline(" UtcDaliBuilderCreateFromJson");
+
+ Builder builder = Builder::New();
+
+ TextActor actor = TextActor::DownCast( builder.CreateFromJson("foobar") );
+
+ DALI_TEST_CHECK( !actor );
+
+ actor = TextActor::DownCast(
+ builder.CreateFromJson(
+ ReplaceQuotes("{'type':'TextActor','text':'Hi'}") ) );
+
+ DALI_TEST_CHECK( actor );
+
+ DALI_TEST_CHECK( actor.GetText() == "Hi" );
+
+ END_TEST;
+}
+
+int UtcDaliBuilderApplyFromJson(void)
+{
+ ToolkitTestApplication application;
+
+ tet_infoline(" UtcDaliBuilderApplyFromJson");
+
+ Builder builder = Builder::New();
+
+ TextActor actor = TextActor::DownCast(
+ builder.CreateFromJson(
+ ReplaceQuotes("{'type':'TextActor','text':'Hi'}") ) );
+
+ DALI_TEST_CHECK( actor );
+
+ DALI_TEST_CHECK( actor.GetText() == "Hi" );
+
+ DALI_TEST_CHECK( !builder.ApplyFromJson(actor, ReplaceQuotes("foobar") ) );
+
+ builder.ApplyFromJson(actor, ReplaceQuotes("{'text':'low'}") );
+
+ DALI_TEST_CHECK( actor.GetText() == "low" );
+
+ END_TEST;
+}
+
+int UtcDaliBuilderQuitSignal(void)
+{
+ ToolkitTestApplication application;
+
+ // JSON with a quit event when the actor is touched
+ std::string json(
+ "{"
+ "\"stage\":"
+ "[{"
+ "\"type\": \"Actor\","
+ "\"size\": [100,100,1],"
+ "\"parent-origin\": \"TOP_LEFT\","
+ "\"anchor-point\": \"TOP_LEFT\","
+ "\"signals\": [{"
+ "\"name\": \"touched\","
+ "\"action\": \"quit\""
+ "}]"
+ "}]"
+ "}"
+ );
+ Builder builder = Builder::New();
+ builder.LoadFromString( json );
+ builder.AddActors ( Stage::GetCurrent().GetRootLayer() );
+
+ // Connect to builder's quit signal
+ bool functorCalled( false );
+ builder.QuitSignal().Connect( &application, BuilderFunctor( functorCalled ) );
+
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+ // Emit touch event and check that our quit method is called
+ Integration::TouchEvent touchEvent;
+ touchEvent.points.push_back( TouchPoint ( 0, TouchPoint::Down, 10.0f, 10.0f ) );
+ application.ProcessEvent( touchEvent );
+ DALI_TEST_CHECK( functorCalled );
+
+ END_TEST;
+}