From: Mohamad Al-Jaf mohamadaljaf@gmail.com
--- .../tests/application.c | 42 +++++++++++++++++++ .../tests/data.c | 7 ++++ 2 files changed, 49 insertions(+)
diff --git a/dlls/windows.applicationmodel/tests/application.c b/dlls/windows.applicationmodel/tests/application.c index 426d0d526a0..f9005a50ba3 100644 --- a/dlls/windows.applicationmodel/tests/application.c +++ b/dlls/windows.applicationmodel/tests/application.c @@ -55,6 +55,47 @@ static void check_interface_( unsigned int line, void *obj, const IID *iid ) IUnknown_Release( unk ); }
+static void test_ApplicationDataStatics(void) +{ + static const WCHAR *application_data_statics_name = L"Windows.Storage.ApplicationData"; + IApplicationDataStatics *application_data_statics; + IApplicationData *application_data; + IActivationFactory *factory; + HSTRING str; + HRESULT hr; + LONG ref; + + hr = WindowsCreateString( application_data_statics_name, wcslen( application_data_statics_name ), &str ); + ok( hr == S_OK, "got hr %#lx.\n", hr ); + + hr = RoGetActivationFactory( str, &IID_IActivationFactory, (void **)&factory ); + WindowsDeleteString( str ); + ok( hr == S_OK || broken( hr == REGDB_E_CLASSNOTREG ), "got hr %#lx.\n", hr ); + if (hr == REGDB_E_CLASSNOTREG) + { + win_skip( "%s runtimeclass not registered, skipping tests.\n", wine_dbgstr_w( application_data_statics_name ) ); + return; + } + + check_interface( factory, &IID_IUnknown ); + check_interface( factory, &IID_IInspectable ); + check_interface( factory, &IID_IAgileObject ); + + hr = IActivationFactory_QueryInterface( factory, &IID_IApplicationDataStatics, (void **)&application_data_statics ); + ok( hr == S_OK, "got hr %#lx.\n", hr ); + + hr = IApplicationDataStatics_get_Current( application_data_statics, NULL ); + todo_wine ok( hr == E_INVALIDARG, "got hr %#lx.\n", hr ); + hr = IApplicationDataStatics_get_Current( application_data_statics, &application_data ); + todo_wine ok( hr == S_OK, "got hr %#lx.\n", hr ); + todo_wine ok( application_data != NULL, "got NULL application_data %p.\n", application_data ); + + ref = IApplicationDataStatics_Release( application_data_statics ); + ok( ref == 2, "got ref %ld.\n", ref ); + ref = IActivationFactory_Release( factory ); + ok( ref == 1, "got ref %ld.\n", ref ); +} + static void test_PackageStatics(void) { static const WCHAR *package_statics_name = L"Windows.ApplicationModel.Package"; @@ -144,6 +185,7 @@ int main( int argc, char const *argv[] ) hr = RoInitialize( RO_INIT_MULTITHREADED ); ok( hr == S_OK, "RoInitialize failed, hr %#lx\n", hr );
+ test_ApplicationDataStatics(); test_PackageStatics();
RoUninitialize(); diff --git a/dlls/windows.storage.applicationdata/tests/data.c b/dlls/windows.storage.applicationdata/tests/data.c index 4365671e63d..39419e05f6c 100644 --- a/dlls/windows.storage.applicationdata/tests/data.c +++ b/dlls/windows.storage.applicationdata/tests/data.c @@ -49,6 +49,7 @@ static void test_ApplicationDataStatics(void) { static const WCHAR *application_data_statics_name = L"Windows.Storage.ApplicationData"; IApplicationDataStatics *application_data_statics; + IApplicationData *application_data; IActivationFactory *factory; HSTRING str; HRESULT hr; @@ -73,6 +74,12 @@ static void test_ApplicationDataStatics(void) hr = IActivationFactory_QueryInterface( factory, &IID_IApplicationDataStatics, (void **)&application_data_statics ); ok( hr == S_OK, "got hr %#lx.\n", hr );
+ hr = IApplicationDataStatics_get_Current( application_data_statics, NULL ); + todo_wine ok( hr == E_INVALIDARG, "got hr %#lx.\n", hr ); + hr = IApplicationDataStatics_get_Current( application_data_statics, &application_data ); + todo_wine ok( hr == 0x80073d54, "got hr %#lx.\n", hr ); + todo_wine ok( !application_data, "got application_data %p.\n", application_data ); + ref = IApplicationDataStatics_Release( application_data_statics ); ok( ref == 2, "got ref %ld.\n", ref ); ref = IActivationFactory_Release( factory );