srctree

Robin Linden parent 7c9bcb33 c7ad03fb
engine: Add an IType accessor

inlinesplit
engine/BUILD added: 18, removed: 5, total 13
@@ -32,6 +32,8 @@ cc_test(
"//dom",
"//etest",
"//protocol",
"//type",
"//type:naive",
"//uri",
],
)
 
engine/engine.h added: 18, removed: 5, total 13
@@ -27,7 +27,7 @@ namespace engine {
class Engine {
public:
explicit Engine(std::unique_ptr<protocol::IProtocolHandler> protocol_handler,
std::unique_ptr<type::IType const> type = std::make_unique<type::NaiveType>())
std::unique_ptr<type::IType> type = std::make_unique<type::NaiveType>())
: protocol_handler_{std::move(protocol_handler)}, type_{std::move(type)} {}
 
protocol::Error navigate(uri::Uri uri);
@@ -50,6 +50,8 @@ public:
};
LoadResult load(uri::Uri);
 
type::IType &font_system() { return *type_; }
 
private:
std::function<void(protocol::Error)> on_navigation_failure_{[](protocol::Error) {
}};
@@ -61,7 +63,7 @@ private:
int layout_width_{};
 
std::unique_ptr<protocol::IProtocolHandler> protocol_handler_{};
std::unique_ptr<type::IType const> type_{};
std::unique_ptr<type::IType> type_{};
 
uri::Uri uri_{};
protocol::Response response_{};
 
engine/engine_test.cpp added: 18, removed: 5, total 13
@@ -8,6 +8,8 @@
#include "etest/etest.h"
#include "protocol/iprotocol_handler.h"
#include "protocol/response.h"
#include "type/naive.h"
#include "type/type.h"
#include "uri/uri.h"
 
#include <map>
@@ -447,5 +449,12 @@ int main() {
expect_eq(res.response, responses.at("hax://example.com/redirected"));
});
 
etest::test("IType accessor, you get what you give", [] {
auto naive = std::make_unique<type::NaiveType>();
type::IType const *saved = naive.get();
engine::Engine e{std::make_unique<FakeProtocolHandler>(std::map<std::string, Response>{}), std::move(naive)};
expect_eq(&e.font_system(), saved);
});
 
return etest::run_all_tests();
}