/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace { class SwUiWriterTest9 : public SwModelTestBase { public: SwUiWriterTest9() : SwModelTestBase("/sw/qa/extras/uiwriter/data/") { } }; CPPUNIT_TEST_FIXTURE(SwUiWriterTest9, testTdf158785) { // given a document with a hyperlink surrounded by N-dashes (–www.dordt.edu–) createSwDoc("tdf158785_hyperlink.fodt"); SwDoc& rDoc = *getSwDoc(); SwWrtShell* pWrtShell = rDoc.GetDocShell()->GetWrtShell(); CPPUNIT_ASSERT(pWrtShell); // go to the end of the hyperlink pWrtShell->SttEndDoc(/*bStart=*/false); pWrtShell->Left(SwCursorSkipMode::Chars, /*bSelect=*/false, 1, /*bBasicCall=*/false); // get last point that will be part of the hyperlink (current position 1pt wide). Point aLogicL(pWrtShell->GetCharRect().Center()); Point aLogicR(aLogicL); // sanity check - we really are right by the hyperlink aLogicL.AdjustX(-1); SwContentAtPos aContentAtPos(IsAttrAtPos::InetAttr); pWrtShell->GetContentAtPos(aLogicL, aContentAtPos); CPPUNIT_ASSERT_EQUAL(IsAttrAtPos::InetAttr, aContentAtPos.eContentAtPos); // The test: the position of the N-dash should not indicate hyperlink properties // cursor pos would NOT be considered part of the hyperlink, but increase for good measure... aLogicR.AdjustX(1); pWrtShell->GetContentAtPos(aLogicR, aContentAtPos); CPPUNIT_ASSERT_EQUAL(IsAttrAtPos::NONE, aContentAtPos.eContentAtPos); } } // end of anonymouse namespace CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */