| // Copyright 2013 The Flutter Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "flutter/shell/platform/windows/testing/windows_test_context.h" | |
| #include "flutter/fml/platform/win/wstring_conversion.h" | |
| namespace flutter { | |
| namespace testing { | |
| WindowsTestContext::WindowsTestContext(std::string_view assets_path) | |
| : assets_path_(fml::Utf8ToWideString(assets_path)), | |
| native_resolver_(std::make_shared<TestDartNativeResolver>()) { | |
| isolate_create_callbacks_.push_back( | |
| [weak_resolver = | |
| std::weak_ptr<TestDartNativeResolver>{native_resolver_}]() { | |
| if (auto resolver = weak_resolver.lock()) { | |
| resolver->SetNativeResolverForIsolate(); | |
| } | |
| }); | |
| } | |
| WindowsTestContext::~WindowsTestContext() = default; | |
| const std::wstring& WindowsTestContext::GetAssetsPath() const { | |
| return assets_path_; | |
| } | |
| const std::wstring& WindowsTestContext::GetIcuDataPath() const { | |
| return icu_data_path_; | |
| } | |
| void WindowsTestContext::AddNativeFunction(std::string_view name, | |
| Dart_NativeFunction function) { | |
| native_resolver_->AddNativeCallback(std::string{name}, function); | |
| } | |
| fml::closure WindowsTestContext::GetRootIsolateCallback() { | |
| return [this]() { | |
| for (auto closure : this->isolate_create_callbacks_) { | |
| closure(); | |
| } | |
| }; | |
| } | |
| } // namespace testing | |
| } // namespace flutter |