diff --git a/linux/polyvox_filament_plugin_private.h b/linux/polyvox_filament_plugin_private.h new file mode 100644 index 00000000..7f4bdf81 --- /dev/null +++ b/linux/polyvox_filament_plugin_private.h @@ -0,0 +1,10 @@ +#include + +#include "include/polyvox_filament/polyvox_filament_plugin.h" + +// This file exposes some plugin internals for unit testing. See +// https://github.com/flutter/flutter/issues/88724 for current limitations +// in the unit-testable API. + +// Handles the getPlatformVersion method call. +FlMethodResponse *get_platform_version(); diff --git a/linux/test/polyvox_filament_plugin_test.cc b/linux/test/polyvox_filament_plugin_test.cc new file mode 100644 index 00000000..8418602b --- /dev/null +++ b/linux/test/polyvox_filament_plugin_test.cc @@ -0,0 +1,31 @@ +#include +#include +#include + +#include "include/polyvox_filament/polyvox_filament_plugin.h" +#include "polyvox_filament_plugin_private.h" + +// This demonstrates a simple unit test of the C portion of this plugin's +// implementation. +// +// Once you have built the plugin's example app, you can run these tests +// from the command line. For instance, for a plugin called my_plugin +// built for x64 debug, run: +// $ build/linux/x64/debug/plugins/my_plugin/my_plugin_test + +namespace polyvox_filament { +namespace test { + +TEST(PolyvoxFilamentPlugin, GetPlatformVersion) { + g_autoptr(FlMethodResponse) response = get_platform_version(); + ASSERT_NE(response, nullptr); + ASSERT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response)); + FlValue* result = fl_method_success_response_get_result( + FL_METHOD_SUCCESS_RESPONSE(response)); + ASSERT_EQ(fl_value_get_type(result), FL_VALUE_TYPE_STRING); + // The full string varies, so just validate that it has the right format. + EXPECT_THAT(fl_value_get_string(result), testing::StartsWith("Linux ")); +} + +} // namespace test +} // namespace polyvox_filament