diff examples/js-sprite/main.cpp @ 80:a162f380f02e

CMake: create examples, closes #615
author David Demelier <markand@malikania.fr>
date Sun, 22 Jan 2017 09:59:14 +0100
parents 78de82cc6bde
children 301599387b40
line wrap: on
line diff
--- a/examples/js-sprite/main.cpp	Sat Jan 21 14:13:52 2017 +0100
+++ b/examples/js-sprite/main.cpp	Sun Jan 22 09:59:14 2017 +0100
@@ -1,7 +1,7 @@
 /*
  * main.cpp -- test Sprite (JavaScript binding)
  *
- * Copyright (c) 2013-2016 Malikania Authors
+ * Copyright (c) 2013-2017 Malikania Authors
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -19,183 +19,59 @@
 #include <chrono>
 #include <thread>
 
-#define BOOST_TEST_MODULE "Javascript Sprite"
-#include <boost/test/unit_test.hpp>
-
 #include <malikania/js_client_resources_loader.hpp>
 #include <malikania/js_image.hpp>
 #include <malikania/js_sprite.hpp>
 #include <malikania/js_window.hpp>
 #include <malikania/resources_locator.hpp>
 
-using namespace mlk;
-
 using namespace std::chrono_literals;
 
-class test_sprite {
-protected:
-    directory_resources_locator m_locator;
-    client_resources_loader m_loader;
-    dukx_context m_ctx;
-
-public:
-    test_sprite()
-        : m_locator(SOURCE_DIRECTORY "/resources")
-        , m_loader(m_locator)
-    {
-        duk_push_object(m_ctx);
-        duk_put_global_string(m_ctx, "Malikania");
-        mlk::dukx_load_image(m_ctx);
-        mlk::dukx_load_sprite(m_ctx);
-        mlk::dukx_load_window(m_ctx);
-        dukx_put_client_loader(m_ctx, m_loader);
-    }
-};
-
-BOOST_FIXTURE_TEST_SUITE(test_sprite_suite, test_sprite)
-
-BOOST_AUTO_TEST_CASE(cell)
+void basic(dukx_context& ctx)
 {
-    try {
-        auto ret = duk_peval_string(m_ctx,
-            "s = new Malikania.Sprite('sprites/margins.json');"
-            "w = s.cell.width;"
-            "h = s.cell.height;"
-        );
-
-        if (ret != 0) {
-            throw dukx_get_exception(m_ctx, -1);
-        }
+    auto ret = duk_peval_string(ctx,
+        "w = new Malikania.Window();"
+        "s = new Malikania.Sprite('sprites/margins.json');"
+        "c = 0;"
+    );
 
-        duk_get_global_string(m_ctx, "w");
-        BOOST_REQUIRE_EQUAL(32U, duk_to_uint(m_ctx, -1));
-        duk_pop(m_ctx);
-        duk_get_global_string(m_ctx, "h");
-        BOOST_REQUIRE_EQUAL(32U, duk_to_uint(m_ctx, -1));
-        duk_pop(m_ctx);
-    } catch (const std::exception &ex) {
-        BOOST_FAIL(ex.what());
+    if (ret != 0) {
+        throw dukx_get_exception(ctx, -1);
     }
-}
-
-BOOST_AUTO_TEST_CASE(columns)
-{
-    try {
-        auto ret = duk_peval_string(m_ctx,
-            "s = new Malikania.Sprite('sprites/margins.json');"
-            "n = s.columns;"
-        );
 
-        if (ret != 0) {
-            throw dukx_get_exception(m_ctx, -1);
-        }
-
-        duk_get_global_string(m_ctx, "n");
-        BOOST_REQUIRE_EQUAL(4U, duk_to_uint(m_ctx, -1));
-        duk_pop(m_ctx);
-    } catch (const std::exception &ex) {
-        BOOST_FAIL(ex.what());
-    }
-}
-
-BOOST_AUTO_TEST_CASE(margins)
-{
-    try {
-        auto ret = duk_peval_string(m_ctx,
-            "s = new Malikania.Sprite('sprites/margins.json');"
-            "w = s.margins.width;"
-            "h = s.margins.height;"
+    for (unsigned c = 0; c < 12; ++c) {
+        auto ret = duk_peval_string(ctx,
+            "w.setDrawingColor('lightskyblue');"
+            "w.clear();"
+            "s.draw(w, c++, { x: 320 - 16, y: 240 - 16 });"
+            "w.present();"
         );
 
         if (ret != 0) {
-            throw dukx_get_exception(m_ctx, -1);
+            throw dukx_get_exception(ctx, -1);
         }
 
-        duk_get_global_string(m_ctx, "w");
-        BOOST_REQUIRE_EQUAL(4U, duk_to_uint(m_ctx, -1));
-        duk_pop(m_ctx);
-        duk_get_global_string(m_ctx, "h");
-        BOOST_REQUIRE_EQUAL(6U, duk_to_uint(m_ctx, -1));
-        duk_pop(m_ctx);
-    } catch (const std::exception &ex) {
-        BOOST_FAIL(ex.what());
-    }
-}
-
-BOOST_AUTO_TEST_CASE(rows)
-{
-    try {
-        auto ret = duk_peval_string(m_ctx,
-            "s = new Malikania.Sprite('sprites/margins.json');"
-            "n = s.rows;"
-        );
-
-        if (ret != 0) {
-            throw dukx_get_exception(m_ctx, -1);
-        }
-
-        duk_get_global_string(m_ctx, "n");
-        BOOST_REQUIRE_EQUAL(3U, duk_to_uint(m_ctx, -1));
-        duk_pop(m_ctx);
-    } catch (const std::exception &ex) {
-        BOOST_FAIL(ex.what());
+        std::this_thread::sleep_for(1s);
     }
 }
 
-BOOST_AUTO_TEST_CASE(space)
-{
-    try {
-        auto ret = duk_peval_string(m_ctx,
-            "s = new Malikania.Sprite('sprites/margins.json');"
-            "w = s.space.width;"
-            "h = s.space.height;"
-        );
-
-        if (ret != 0) {
-            throw dukx_get_exception(m_ctx, -1);
-        }
-
-        duk_get_global_string(m_ctx, "w");
-        BOOST_REQUIRE_EQUAL(2U, duk_to_uint(m_ctx, -1));
-        duk_pop(m_ctx);
-        duk_get_global_string(m_ctx, "h");
-        BOOST_REQUIRE_EQUAL(3U, duk_to_uint(m_ctx, -1));
-        duk_pop(m_ctx);
-    } catch (const std::exception &ex) {
-        BOOST_FAIL(ex.what());
-    }
-}
-
-BOOST_AUTO_TEST_CASE(basic)
+int main()
 {
     try {
-        auto ret = duk_peval_string(m_ctx,
-            "w = new Malikania.Window();"
-            "s = new Malikania.Sprite('sprites/margins.json');"
-            "c = 0;"
-        );
-
-        if (ret != 0) {
-            throw dukx_get_exception(m_ctx, -1);
-        }
+        mlk::directory_resources_locator locator(SOURCE_DIRECTORY);
+        mlk::client_resources_loader loader(locator);
+        dukx_context ctx;
 
-        for (unsigned c = 0; c < 12; ++c) {
-            auto ret = duk_peval_string(m_ctx,
-                "w.setDrawingColor('lightskyblue');"
-                "w.clear();"
-                "s.draw(w, c++, { x: 320 - 16, y: 240 - 16 });"
-                "w.present();"
-            );
+        duk_push_object(ctx);
+        duk_put_global_string(ctx, "Malikania");
+        mlk::dukx_load_image(ctx);
+        mlk::dukx_load_sprite(ctx);
+        mlk::dukx_load_window(ctx);
+        dukx_put_client_loader(ctx, loader);
 
-            if (ret != 0) {
-                throw dukx_get_exception(m_ctx, -1);
-            }
-
-            std::this_thread::sleep_for(1s);
-        }
-    } catch (const std::exception &ex) {
-        BOOST_FAIL(ex.what());
+        basic(ctx);
+    } catch (const std::exception& ex) {
+        std::cerr << ex.what() << std::endl;
+        return 1;
     }
 }
-
-BOOST_AUTO_TEST_SUITE_END()