diff options
Diffstat (limited to 'starmath/qa/cppunit/test_starmath.cxx')
-rw-r--r-- | starmath/qa/cppunit/test_starmath.cxx | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/starmath/qa/cppunit/test_starmath.cxx b/starmath/qa/cppunit/test_starmath.cxx index f694cd888a23..793545879994 100644 --- a/starmath/qa/cppunit/test_starmath.cxx +++ b/starmath/qa/cppunit/test_starmath.cxx @@ -8,12 +8,17 @@ */ #include <sal/config.h> + +#include <vcl/print.hxx> + #include <test/bootstrapfixture.hxx> #include <smdll.hxx> #include <document.hxx> #include <view.hxx> +#include <tmpdevice.hxx> + #include <sfx2/sfxmodelfactory.hxx> #include <sfx2/bindings.hxx> #include <sfx2/request.hxx> @@ -61,6 +66,8 @@ public: void replacePlaceholder(); void viewZoom(); + void testSmTmpDeviceRestoreFont(); + CPPUNIT_TEST_SUITE(Test); CPPUNIT_TEST(editUndoRedo); CPPUNIT_TEST(editMarker); @@ -80,6 +87,7 @@ public: CPPUNIT_TEST(ParseErrorDoubleSubsupscript); CPPUNIT_TEST(replacePlaceholder); CPPUNIT_TEST(viewZoom); + CPPUNIT_TEST(testSmTmpDeviceRestoreFont); CPPUNIT_TEST_SUITE_END(); private: @@ -133,6 +141,35 @@ void Test::tearDown() BootstrapFixture::tearDown(); } +void Test::testSmTmpDeviceRestoreFont() +{ + ScopedVclPtrInstance<Printer> pPrinter; + bool bUseMap100th_mm = true; + + OUString aFontName("Linux Libertine G"); + CPPUNIT_ASSERT(pPrinter->IsFontAvailable(aFontName)); + + vcl::Font aOriginalFont = pPrinter->GetFont(); + aOriginalFont.SetColor(COL_RED); + pPrinter->SetTextColor(COL_RED); + + vcl::Font aNewFont; + + { + SmTmpDevice aTmpDev(*pPrinter.get(), bUseMap100th_mm); + + aNewFont = pPrinter->GetFont(); + aNewFont.SetFamilyName(aFontName); + aTmpDev.SetFont(aNewFont); + + CPPUNIT_ASSERT_EQUAL(aFontName, pPrinter->GetFont().GetFamilyName()); + CPPUNIT_ASSERT_EQUAL(COL_BLACK, pPrinter->GetTextColor()); + } + + CPPUNIT_ASSERT(aNewFont != pPrinter->GetFont()); + CPPUNIT_ASSERT_EQUAL(COL_RED, pPrinter->GetTextColor()); +} + void Test::editMarker() { { |