Browse Source

Text: various test code modernization.

We can now check for things way easier, without filling cryptic bools
somewhere.
pull/482/merge
Vladimír Vondruš 3 weeks ago
parent
commit
8bfb4e964f
  1. 159
      src/Magnum/Text/Test/AbstractFontTest.cpp

159
src/Magnum/Text/Test/AbstractFontTest.cpp

@ -29,6 +29,7 @@
#include <Corrade/Containers/Optional.h> #include <Corrade/Containers/Optional.h>
#include <Corrade/Containers/StridedArrayView.h> #include <Corrade/Containers/StridedArrayView.h>
#include <Corrade/Containers/String.h> #include <Corrade/Containers/String.h>
#include <Corrade/Containers/StringStl.h> /** @todo remove once file callbacks are std::string-free */
#include <Corrade/Containers/Triple.h> #include <Corrade/Containers/Triple.h>
#include <Corrade/TestSuite/Tester.h> #include <Corrade/TestSuite/Tester.h>
#include <Corrade/TestSuite/Compare/Container.h> #include <Corrade/TestSuite/Compare/Container.h>
@ -231,7 +232,10 @@ void AbstractFontTest::openData() {
void doClose() override {} void doClose() override {}
Properties doOpenData(Containers::ArrayView<const char> data, Float size) override { Properties doOpenData(Containers::ArrayView<const char> data, Float size) override {
_opened = (data.size() == 1 && data[0] == '\xa5'); CORRADE_COMPARE_AS(data,
Containers::arrayView({'\xa5'}),
TestSuite::Compare::Container);
_opened = true;
return {size, 1.0f, 2.0f, 3.0f, 15}; return {size, 1.0f, 2.0f, 3.0f, 15};
} }
@ -240,12 +244,13 @@ void AbstractFontTest::openData() {
Vector2 doGlyphAdvance(UnsignedInt) override { return {}; } Vector2 doGlyphAdvance(UnsignedInt) override { return {}; }
Containers::Pointer<AbstractShaper> doCreateShaper() override { return {}; } Containers::Pointer<AbstractShaper> doCreateShaper() override { return {}; }
private:
bool _opened = false; bool _opened = false;
} font; } font;
CORRADE_VERIFY(!font.isOpened()); CORRADE_VERIFY(!font.isOpened());
const char a5 = '\xa5'; const char a5[]{'\xa5'};
font.openData({&a5, 1}, 13.0f); font.openData(a5, 13.0f);
CORRADE_VERIFY(font.isOpened()); CORRADE_VERIFY(font.isOpened());
CORRADE_COMPARE(font.size(), 13.0f); CORRADE_COMPARE(font.size(), 13.0f);
CORRADE_COMPARE(font.ascent(), 1.0f); CORRADE_COMPARE(font.ascent(), 1.0f);
@ -261,7 +266,8 @@ void AbstractFontTest::openFile() {
void doClose() override {} void doClose() override {}
Properties doOpenFile(Containers::StringView filename, Float size) override { Properties doOpenFile(Containers::StringView filename, Float size) override {
_opened = filename == "hello.ttf"; CORRADE_COMPARE(filename, "hello.ttf");
_opened = true;
return {size, 1.0f, 2.0f, 3.0f, 15}; return {size, 1.0f, 2.0f, 3.0f, 15};
} }
@ -270,6 +276,7 @@ void AbstractFontTest::openFile() {
Vector2 doGlyphAdvance(UnsignedInt) override { return {}; } Vector2 doGlyphAdvance(UnsignedInt) override { return {}; }
Containers::Pointer<AbstractShaper> doCreateShaper() override { return {}; } Containers::Pointer<AbstractShaper> doCreateShaper() override { return {}; }
private:
bool _opened = false; bool _opened = false;
} font; } font;
@ -290,7 +297,10 @@ void AbstractFontTest::openFileAsData() {
void doClose() override {} void doClose() override {}
Properties doOpenData(Containers::ArrayView<const char> data, Float size) override { Properties doOpenData(Containers::ArrayView<const char> data, Float size) override {
_opened = (data.size() == 1 && data[0] == '\xa5'); CORRADE_COMPARE_AS(data,
Containers::arrayView({'\xa5'}),
TestSuite::Compare::Container);
_opened = true;
return {size, 1.0f, 2.0f, 3.0f, 15}; return {size, 1.0f, 2.0f, 3.0f, 15};
} }
@ -299,6 +309,7 @@ void AbstractFontTest::openFileAsData() {
Vector2 doGlyphAdvance(UnsignedInt) override { return {}; } Vector2 doGlyphAdvance(UnsignedInt) override { return {}; }
Containers::Pointer<AbstractShaper> doCreateShaper() override { return {}; } Containers::Pointer<AbstractShaper> doCreateShaper() override { return {}; }
private:
bool _opened = false; bool _opened = false;
} font; } font;
@ -458,7 +469,9 @@ void AbstractFontTest::setFileCallbackTemplateNull() {
bool doIsOpened() const override { return false; } bool doIsOpened() const override { return false; }
void doClose() override {} void doClose() override {}
void doSetFileCallback(Containers::Optional<Containers::ArrayView<const char>>(*callback)(const std::string&, InputFileCallbackPolicy, void*), void* userData) override { void doSetFileCallback(Containers::Optional<Containers::ArrayView<const char>>(*callback)(const std::string&, InputFileCallbackPolicy, void*), void* userData) override {
called = !callback && !userData; CORRADE_VERIFY(!callback);
CORRADE_VERIFY(!userData);
called = true;
} }
void doGlyphIdsInto(const Containers::StridedArrayView1D<const char32_t>&, const Containers::StridedArrayView1D<UnsignedInt>&) override {} void doGlyphIdsInto(const Containers::StridedArrayView1D<const char32_t>&, const Containers::StridedArrayView1D<UnsignedInt>&) override {}
@ -580,13 +593,15 @@ void AbstractFontTest::setFileCallbackOpenFileDirectly() {
Properties doOpenFile(Containers::StringView filename, Float size) override { Properties doOpenFile(Containers::StringView filename, Float size) override {
/* Called because FileCallback is supported */ /* Called because FileCallback is supported */
_opened = filename == "file.dat" && fileCallback() && fileCallbackUserData(); CORRADE_COMPARE(filename, "file.dat");
CORRADE_VERIFY(fileCallback());
CORRADE_VERIFY(fileCallbackUserData());
_opened = true;
return {size, 1.0f, 2.0f, 3.0f, 15}; return {size, 1.0f, 2.0f, 3.0f, 15};
} }
Properties doOpenData(Containers::ArrayView<const char>, Float) override { Properties doOpenData(Containers::ArrayView<const char>, Float) override {
/* Shouldn't be called because FileCallback is supported */ CORRADE_FAIL("This should not be called");
openDataCalledNotSureWhy = true;
return {}; return {};
} }
@ -595,19 +610,20 @@ void AbstractFontTest::setFileCallbackOpenFileDirectly() {
Vector2 doGlyphAdvance(UnsignedInt) override { return {}; } Vector2 doGlyphAdvance(UnsignedInt) override { return {}; }
Containers::Pointer<AbstractShaper> doCreateShaper() override { return {}; } Containers::Pointer<AbstractShaper> doCreateShaper() override { return {}; }
private:
bool _opened = false; bool _opened = false;
bool openDataCalledNotSureWhy = false;
} font; } font;
bool calledNotSureWhy = false; /* The callback shouldn't be called from the class itself, it's the
font.setFileCallback([](const std::string&, InputFileCallbackPolicy, bool& calledNotSureWhy) -> Containers::Optional<Containers::ArrayView<const char>> { doOpenFile() implementation responsibility to call it. In this case the
calledNotSureWhy = true; implementation only verifies that it's set, along with the user data. */
int dummy;
font.setFileCallback([](const std::string&, InputFileCallbackPolicy, void*) -> Containers::Optional<Containers::ArrayView<const char>> {
CORRADE_FAIL("This shouldn't be called");
return {}; return {};
}, calledNotSureWhy); }, &dummy);
CORRADE_VERIFY(font.openFile("file.dat", 42.0f)); CORRADE_VERIFY(font.openFile("file.dat", 42.0f));
CORRADE_VERIFY(!calledNotSureWhy);
CORRADE_VERIFY(!font.openDataCalledNotSureWhy);
CORRADE_COMPARE(font.size(), 42.0f); CORRADE_COMPARE(font.size(), 42.0f);
CORRADE_COMPARE(font.ascent(), 1.0f); CORRADE_COMPARE(font.ascent(), 1.0f);
CORRADE_COMPARE(font.descent(), 2.0f); CORRADE_COMPARE(font.descent(), 2.0f);
@ -622,12 +638,18 @@ void AbstractFontTest::setFileCallbackOpenFileThroughBaseImplementation() {
void doClose() override { _opened = false; } void doClose() override { _opened = false; }
Properties doOpenFile(Containers::StringView filename, Float size) override { Properties doOpenFile(Containers::StringView filename, Float size) override {
openFileCalled = filename == "file.dat" && fileCallback() && fileCallbackUserData(); CORRADE_COMPARE(filename, "file.dat");
CORRADE_VERIFY(fileCallback());
CORRADE_VERIFY(fileCallbackUserData());
openFileCalled = true;
return AbstractFont::doOpenFile(filename, size); return AbstractFont::doOpenFile(filename, size);
} }
Properties doOpenData(Containers::ArrayView<const char> data, Float size) override { Properties doOpenData(Containers::ArrayView<const char> data, Float size) override {
_opened = (data.size() == 1 && data[0] == '\xb0'); CORRADE_COMPARE_AS(data,
Containers::arrayView({'\xb0'}),
TestSuite::Compare::Container);
_opened = true;
return {size, 1.0f, 2.0f, 3.0f, 15}; return {size, 1.0f, 2.0f, 3.0f, 15};
} }
@ -636,28 +658,31 @@ void AbstractFontTest::setFileCallbackOpenFileThroughBaseImplementation() {
Vector2 doGlyphAdvance(UnsignedInt) override { return {}; } Vector2 doGlyphAdvance(UnsignedInt) override { return {}; }
Containers::Pointer<AbstractShaper> doCreateShaper() override { return {}; } Containers::Pointer<AbstractShaper> doCreateShaper() override { return {}; }
bool _opened = false;
bool openFileCalled = false; bool openFileCalled = false;
private:
bool _opened = false;
} font; } font;
struct State { struct State {
const char data = '\xb0'; const char data = '\xb0';
bool loaded = false; bool loaded = false;
bool closed = false; bool closed = false;
bool calledNotSureWhy = false;
} state; } state;
font.setFileCallback([](const std::string& filename, InputFileCallbackPolicy policy, State& state) -> Containers::Optional<Containers::ArrayView<const char>> { font.setFileCallback([](const std::string& filename, InputFileCallbackPolicy policy, State& state) -> Containers::Optional<Containers::ArrayView<const char>> {
if(filename == "file.dat" && policy == InputFileCallbackPolicy::LoadTemporary) { CORRADE_COMPARE(Containers::StringView{filename}, "file.dat");
if(policy == InputFileCallbackPolicy::LoadTemporary) {
state.loaded = true; state.loaded = true;
return Containers::arrayView(&state.data, 1); return Containers::arrayView(&state.data, 1);
} }
if(filename == "file.dat" && policy == InputFileCallbackPolicy::Close) { if(policy == InputFileCallbackPolicy::Close) {
state.closed = true; state.closed = true;
return {}; return {};
} }
state.calledNotSureWhy = true; CORRADE_FAIL("Unexpected policy" << policy);
return {}; return {};
}, state); }, state);
@ -665,7 +690,6 @@ void AbstractFontTest::setFileCallbackOpenFileThroughBaseImplementation() {
CORRADE_VERIFY(font.openFileCalled); CORRADE_VERIFY(font.openFileCalled);
CORRADE_VERIFY(state.loaded); CORRADE_VERIFY(state.loaded);
CORRADE_VERIFY(state.closed); CORRADE_VERIFY(state.closed);
CORRADE_VERIFY(!state.calledNotSureWhy);
CORRADE_COMPARE(font.size(), 42.0f); CORRADE_COMPARE(font.size(), 42.0f);
CORRADE_COMPARE(font.ascent(), 1.0f); CORRADE_COMPARE(font.ascent(), 1.0f);
CORRADE_COMPARE(font.descent(), 2.0f); CORRADE_COMPARE(font.descent(), 2.0f);
@ -716,7 +740,10 @@ void AbstractFontTest::setFileCallbackOpenFileAsData() {
} }
Properties doOpenData(Containers::ArrayView<const char> data, Float size) override { Properties doOpenData(Containers::ArrayView<const char> data, Float size) override {
_opened = (data.size() == 1 && data[0] == '\xb0'); CORRADE_COMPARE_AS(data,
Containers::arrayView({'\xb0'}),
TestSuite::Compare::Container);
_opened = true;
return {size, 1.0f, 2.0f, 3.0f, 15}; return {size, 1.0f, 2.0f, 3.0f, 15};
} }
@ -733,21 +760,22 @@ void AbstractFontTest::setFileCallbackOpenFileAsData() {
const char data = '\xb0'; const char data = '\xb0';
bool loaded = false; bool loaded = false;
bool closed = false; bool closed = false;
bool calledNotSureWhy = false;
} state; } state;
font.setFileCallback([](const std::string& filename, InputFileCallbackPolicy policy, State& state) -> Containers::Optional<Containers::ArrayView<const char>> { font.setFileCallback([](const std::string& filename, InputFileCallbackPolicy policy, State& state) -> Containers::Optional<Containers::ArrayView<const char>> {
if(filename == "file.dat" && policy == InputFileCallbackPolicy::LoadTemporary) { CORRADE_COMPARE(Containers::StringView{filename}, "file.dat");
if(policy == InputFileCallbackPolicy::LoadTemporary) {
state.loaded = true; state.loaded = true;
return Containers::arrayView(&state.data, 1); return Containers::arrayView(&state.data, 1);
} }
if(filename == "file.dat" && policy == InputFileCallbackPolicy::Close) { if(policy == InputFileCallbackPolicy::Close) {
state.closed = true; state.closed = true;
return {}; return {};
} }
state.calledNotSureWhy = true; CORRADE_FAIL("Unexpected policy" << policy);
return {}; return {};
}, state); }, state);
@ -755,7 +783,6 @@ void AbstractFontTest::setFileCallbackOpenFileAsData() {
CORRADE_VERIFY(!font.openFileCalled); CORRADE_VERIFY(!font.openFileCalled);
CORRADE_VERIFY(state.loaded); CORRADE_VERIFY(state.loaded);
CORRADE_VERIFY(state.closed); CORRADE_VERIFY(state.closed);
CORRADE_VERIFY(!state.calledNotSureWhy);
CORRADE_COMPARE(font.size(), 13.0f); CORRADE_COMPARE(font.size(), 13.0f);
CORRADE_COMPARE(font.ascent(), 1.0f); CORRADE_COMPARE(font.ascent(), 1.0f);
CORRADE_COMPARE(font.descent(), 2.0f); CORRADE_COMPARE(font.descent(), 2.0f);
@ -770,7 +797,7 @@ void AbstractFontTest::setFileCallbackOpenFileAsDataFailed() {
void doClose() override {} void doClose() override {}
Properties doOpenFile(Containers::StringView, Float) override { Properties doOpenFile(Containers::StringView, Float) override {
openFileCalled = true; CORRADE_FAIL("This should not be called");
return {}; return {};
} }
@ -778,8 +805,6 @@ void AbstractFontTest::setFileCallbackOpenFileAsDataFailed() {
Vector2 doGlyphSize(UnsignedInt) override { return {}; } Vector2 doGlyphSize(UnsignedInt) override { return {}; }
Vector2 doGlyphAdvance(UnsignedInt) override { return {}; } Vector2 doGlyphAdvance(UnsignedInt) override { return {}; }
Containers::Pointer<AbstractShaper> doCreateShaper() override { return {}; } Containers::Pointer<AbstractShaper> doCreateShaper() override { return {}; }
bool openFileCalled = false;
} font; } font;
font.setFileCallback([](const std::string&, InputFileCallbackPolicy, void*) { font.setFileCallback([](const std::string&, InputFileCallbackPolicy, void*) {
@ -788,9 +813,7 @@ void AbstractFontTest::setFileCallbackOpenFileAsDataFailed() {
Containers::String out; Containers::String out;
Error redirectError{&out}; Error redirectError{&out};
CORRADE_VERIFY(!font.openFile("file.dat", 132.0f)); CORRADE_VERIFY(!font.openFile("file.dat", 132.0f));
CORRADE_VERIFY(!font.openFileCalled);
CORRADE_COMPARE(out, "Text::AbstractFont::openFile(): cannot open file file.dat\n"); CORRADE_COMPARE(out, "Text::AbstractFont::openFile(): cannot open file file.dat\n");
} }
@ -824,7 +847,7 @@ void AbstractFontTest::properties() {
void AbstractFontTest::propertiesNoFont() { void AbstractFontTest::propertiesNoFont() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return false; } bool doIsOpened() const override { return false; }
void doClose() override {} void doClose() override {}
@ -851,7 +874,7 @@ void AbstractFontTest::propertiesNoFont() {
} }
void AbstractFontTest::glyphId() { void AbstractFontTest::glyphId() {
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { FontFeatures doFeatures() const override {
return FontFeature::OpenData; return FontFeature::OpenData;
} }
@ -893,7 +916,7 @@ void AbstractFontTest::glyphId() {
void AbstractFontTest::glyphIdNoFont() { void AbstractFontTest::glyphIdNoFont() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return false; } bool doIsOpened() const override { return false; }
void doClose() override {} void doClose() override {}
@ -917,7 +940,7 @@ void AbstractFontTest::glyphIdNoFont() {
void AbstractFontTest::glyphIdInvalidSize() { void AbstractFontTest::glyphIdInvalidSize() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
void doClose() override {} void doClose() override {}
@ -940,7 +963,7 @@ void AbstractFontTest::glyphIdInvalidSize() {
void AbstractFontTest::glyphIdOutOfRange() { void AbstractFontTest::glyphIdOutOfRange() {
CORRADE_SKIP_IF_NO_DEBUG_ASSERT(); CORRADE_SKIP_IF_NO_DEBUG_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { FontFeatures doFeatures() const override {
return FontFeature::OpenData; return FontFeature::OpenData;
} }
@ -979,7 +1002,7 @@ void AbstractFontTest::glyphIdOutOfRange() {
} }
void AbstractFontTest::glyphName() { void AbstractFontTest::glyphName() {
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { FontFeatures doFeatures() const override {
return FontFeature::OpenData; return FontFeature::OpenData;
} }
@ -1014,7 +1037,7 @@ void AbstractFontTest::glyphName() {
} }
void AbstractFontTest::glyphNameNotImplemented() { void AbstractFontTest::glyphNameNotImplemented() {
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { FontFeatures doFeatures() const override {
return FontFeature::OpenData; return FontFeature::OpenData;
} }
@ -1045,7 +1068,7 @@ void AbstractFontTest::glyphNameNotImplemented() {
void AbstractFontTest::glyphNameNoFont() { void AbstractFontTest::glyphNameNoFont() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return false; } bool doIsOpened() const override { return false; }
void doClose() override {} void doClose() override {}
@ -1068,7 +1091,7 @@ void AbstractFontTest::glyphNameNoFont() {
void AbstractFontTest::glyphNameOutOfRange() { void AbstractFontTest::glyphNameOutOfRange() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { FontFeatures doFeatures() const override {
return FontFeature::OpenData; return FontFeature::OpenData;
} }
@ -1103,7 +1126,7 @@ void AbstractFontTest::glyphNameOutOfRange() {
} }
void AbstractFontTest::glyphSizeAdvance() { void AbstractFontTest::glyphSizeAdvance() {
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return FontFeature::OpenData; } FontFeatures doFeatures() const override { return FontFeature::OpenData; }
bool doIsOpened() const override { return _opened; } bool doIsOpened() const override { return _opened; }
void doClose() override {} void doClose() override {}
@ -1129,7 +1152,7 @@ void AbstractFontTest::glyphSizeAdvance() {
void AbstractFontTest::glyphSizeAdvanceNoFont() { void AbstractFontTest::glyphSizeAdvanceNoFont() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return false; } bool doIsOpened() const override { return false; }
void doClose() override {} void doClose() override {}
@ -1152,7 +1175,7 @@ void AbstractFontTest::glyphSizeAdvanceNoFont() {
void AbstractFontTest::glyphSizeAdvanceOutOfRange() { void AbstractFontTest::glyphSizeAdvanceOutOfRange() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return FontFeature::OpenData; } FontFeatures doFeatures() const override { return FontFeature::OpenData; }
bool doIsOpened() const override { return _opened; } bool doIsOpened() const override { return _opened; }
void doClose() override {} void doClose() override {}
@ -1189,7 +1212,7 @@ struct DummyGlyphCache: AbstractGlyphCache {
}; };
void AbstractFontTest::fillGlyphCache() { void AbstractFontTest::fillGlyphCache() {
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { FontFeatures doFeatures() const override {
return FontFeature::OpenData; return FontFeature::OpenData;
} }
@ -1241,7 +1264,7 @@ void AbstractFontTest::fillGlyphCache() {
void AbstractFontTest::fillGlyphCacheOutOfRange() { void AbstractFontTest::fillGlyphCacheOutOfRange() {
CORRADE_SKIP_IF_NO_DEBUG_ASSERT(); CORRADE_SKIP_IF_NO_DEBUG_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { FontFeatures doFeatures() const override {
return FontFeature::OpenData; return FontFeature::OpenData;
} }
@ -1278,7 +1301,7 @@ void AbstractFontTest::fillGlyphCacheOutOfRange() {
void AbstractFontTest::fillGlyphCacheNotUnique() { void AbstractFontTest::fillGlyphCacheNotUnique() {
CORRADE_SKIP_IF_NO_DEBUG_ASSERT(); CORRADE_SKIP_IF_NO_DEBUG_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { FontFeatures doFeatures() const override {
return FontFeature::OpenData; return FontFeature::OpenData;
} }
@ -1311,7 +1334,7 @@ void AbstractFontTest::fillGlyphCacheNotUnique() {
} }
void AbstractFontTest::fillGlyphCacheFromString() { void AbstractFontTest::fillGlyphCacheFromString() {
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { FontFeatures doFeatures() const override {
return FontFeature::OpenData; return FontFeature::OpenData;
} }
@ -1379,7 +1402,7 @@ void AbstractFontTest::fillGlyphCacheFromString() {
} }
void AbstractFontTest::fillGlyphCacheFailed() { void AbstractFontTest::fillGlyphCacheFailed() {
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { FontFeatures doFeatures() const override {
return FontFeature::OpenData; return FontFeature::OpenData;
} }
@ -1423,7 +1446,7 @@ void AbstractFontTest::fillGlyphCacheFailed() {
void AbstractFontTest::fillGlyphCacheNotSupported() { void AbstractFontTest::fillGlyphCacheNotSupported() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return FontFeature::PreparedGlyphCache; } FontFeatures doFeatures() const override { return FontFeature::PreparedGlyphCache; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
void doClose() override {} void doClose() override {}
@ -1453,7 +1476,7 @@ void AbstractFontTest::fillGlyphCacheNotSupported() {
void AbstractFontTest::fillGlyphCacheNotImplemented() { void AbstractFontTest::fillGlyphCacheNotImplemented() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { FontFeatures doFeatures() const override {
return FontFeature::OpenData; return FontFeature::OpenData;
} }
@ -1492,7 +1515,7 @@ void AbstractFontTest::fillGlyphCacheNotImplemented() {
void AbstractFontTest::fillGlyphCacheNoFont() { void AbstractFontTest::fillGlyphCacheNoFont() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return false; } bool doIsOpened() const override { return false; }
void doClose() override {} void doClose() override {}
@ -1518,7 +1541,7 @@ void AbstractFontTest::fillGlyphCacheNoFont() {
void AbstractFontTest::fillGlyphCacheInvalidUtf8() { void AbstractFontTest::fillGlyphCacheInvalidUtf8() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
void doClose() override {} void doClose() override {}
@ -1537,7 +1560,7 @@ void AbstractFontTest::fillGlyphCacheInvalidUtf8() {
} }
void AbstractFontTest::createGlyphCache() { void AbstractFontTest::createGlyphCache() {
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return FontFeature::PreparedGlyphCache; } FontFeatures doFeatures() const override { return FontFeature::PreparedGlyphCache; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
void doClose() override {} void doClose() override {}
@ -1561,7 +1584,7 @@ void AbstractFontTest::createGlyphCache() {
void AbstractFontTest::createGlyphCacheNotSupported() { void AbstractFontTest::createGlyphCacheNotSupported() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
void doClose() override {} void doClose() override {}
@ -1581,7 +1604,7 @@ void AbstractFontTest::createGlyphCacheNotSupported() {
void AbstractFontTest::createGlyphCacheNotImplemented() { void AbstractFontTest::createGlyphCacheNotImplemented() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return FontFeature::PreparedGlyphCache; } FontFeatures doFeatures() const override { return FontFeature::PreparedGlyphCache; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
void doClose() override {} void doClose() override {}
@ -1601,7 +1624,7 @@ void AbstractFontTest::createGlyphCacheNotImplemented() {
void AbstractFontTest::createGlyphCacheNoFont() { void AbstractFontTest::createGlyphCacheNoFont() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return FontFeature::PreparedGlyphCache; } FontFeatures doFeatures() const override { return FontFeature::PreparedGlyphCache; }
bool doIsOpened() const override { return false; } bool doIsOpened() const override { return false; }
void doClose() override {} void doClose() override {}
@ -1631,7 +1654,7 @@ void AbstractFontTest::createShaper() {
void doGlyphClustersInto(const Containers::StridedArrayView1D<UnsignedInt>&) const override {} void doGlyphClustersInto(const Containers::StridedArrayView1D<UnsignedInt>&) const override {}
}; };
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
void doClose() override {} void doClose() override {}
@ -1649,7 +1672,7 @@ void AbstractFontTest::createShaper() {
void AbstractFontTest::createShaperNoFont() { void AbstractFontTest::createShaperNoFont() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return false; } bool doIsOpened() const override { return false; }
void doClose() override {} void doClose() override {}
@ -1669,7 +1692,7 @@ void AbstractFontTest::createShaperNoFont() {
void AbstractFontTest::createShaperNullptr() { void AbstractFontTest::createShaperNullptr() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
void doClose() override {} void doClose() override {}
@ -1712,7 +1735,7 @@ void AbstractFontTest::layout() {
} }
}; };
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return _opened; } bool doIsOpened() const override { return _opened; }
void doClose() override {} void doClose() override {}
@ -1797,7 +1820,7 @@ void AbstractFontTest::layout() {
} }
void AbstractFontTest::layoutArrayGlyphCache() { void AbstractFontTest::layoutArrayGlyphCache() {
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
void doClose() override {} void doClose() override {}
@ -1819,7 +1842,7 @@ void AbstractFontTest::layoutArrayGlyphCache() {
} }
void AbstractFontTest::layoutGlyphCacheFontNotFound() { void AbstractFontTest::layoutGlyphCacheFontNotFound() {
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
void doClose() override {} void doClose() override {}
@ -1863,7 +1886,7 @@ void AbstractFontTest::layoutGlyphOutOfRange() {
void doGlyphClustersInto(const Containers::StridedArrayView1D<UnsignedInt>&) const override {} void doGlyphClustersInto(const Containers::StridedArrayView1D<UnsignedInt>&) const override {}
}; };
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
void doClose() override {} void doClose() override {}
@ -1902,7 +1925,7 @@ void AbstractFontTest::layoutGlyphOutOfRange() {
void AbstractFontTest::layoutNoFont() { void AbstractFontTest::layoutNoFont() {
CORRADE_SKIP_IF_NO_ASSERT(); CORRADE_SKIP_IF_NO_ASSERT();
struct MyFont: AbstractFont { struct: AbstractFont {
FontFeatures doFeatures() const override { return {}; } FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return false; } bool doIsOpened() const override { return false; }
void doClose() override {} void doClose() override {}

Loading…
Cancel
Save