Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
a5263707
Kaydet (Commit)
a5263707
authored
Mar 01, 2013
tarafından
Caolán McNamara
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Related: fdo#55693 add regression tests for autocorrection
Change-Id: Ie9bbeb38ec9cc2fa0377709e75abb0338b20bab5
üst
4a05ab1d
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
123 additions
and
3 deletions
+123
-3
CppunitTest_editeng_core.mk
editeng/CppunitTest_editeng_core.mk
+1
-0
core-test.cxx
editeng/qa/unit/core-test.cxx
+116
-0
svxacorr.cxx
editeng/source/misc/svxacorr.cxx
+6
-3
No files found.
editeng/CppunitTest_editeng_core.mk
Dosyayı görüntüle @
a5263707
...
...
@@ -81,6 +81,7 @@ $(eval $(call gb_CppunitTest_use_components,editeng_core,\
configmgr/source/configmgr \
framework/util/fwk \
i18npool/util/i18npool \
linguistic/source/lng \
sfx2/util/sfx \
ucb/source/core/ucb1 \
ucb/source/ucp/file/ucpfile1 \
...
...
editeng/qa/unit/core-test.cxx
Dosyayı görüntüle @
a5263707
...
...
@@ -38,6 +38,7 @@
#include "editeng/eeitem.hxx"
#include "editeng/editids.hrc"
#include "editeng/editdoc.hxx"
#include "editeng/svxacorr.hxx"
#include "editeng/unofield.hxx"
#include <com/sun/star/text/textfield/Type.hpp>
...
...
@@ -61,9 +62,15 @@ public:
*/
void
testUnoTextFields
();
/**
* AutoCorrect tests
*/
void
testAutocorrect
();
CPPUNIT_TEST_SUITE
(
Test
);
CPPUNIT_TEST
(
testConstruction
);
CPPUNIT_TEST
(
testUnoTextFields
);
CPPUNIT_TEST
(
testAutocorrect
);
CPPUNIT_TEST_SUITE_END
();
private
:
...
...
@@ -221,6 +228,115 @@ void Test::testUnoTextFields()
}
}
class
TestAutoCorrDoc
:
public
SvxAutoCorrDoc
{
public
:
TestAutoCorrDoc
(
const
OUString
&
rText
,
LanguageType
eLang
)
:
m_sText
(
rText
)
,
m_eLang
(
eLang
)
{
}
OUString
getResult
()
const
{
return
m_sText
.
toString
();
}
private
:
OUStringBuffer
m_sText
;
LanguageType
m_eLang
;
virtual
sal_Bool
Delete
(
xub_StrLen
nStt
,
xub_StrLen
nEnd
)
{
//fprintf(stderr, "TestAutoCorrDoc::Delete\n");
m_sText
.
remove
(
nStt
,
nEnd
-
nStt
);
return
true
;
}
virtual
sal_Bool
Insert
(
xub_StrLen
nPos
,
const
String
&
rTxt
)
{
//fprintf(stderr, "TestAutoCorrDoc::Insert\n");
m_sText
.
insert
(
nPos
,
rTxt
);
return
true
;
}
virtual
sal_Bool
Replace
(
xub_StrLen
nPos
,
const
String
&
rTxt
)
{
//fprintf(stderr, "TestAutoCorrDoc::Replace\n");
return
ReplaceRange
(
nPos
,
rTxt
.
Len
(),
rTxt
);
}
virtual
sal_Bool
ReplaceRange
(
xub_StrLen
nPos
,
xub_StrLen
nLen
,
const
String
&
rTxt
)
{
//fprintf(stderr, "TestAutoCorrDoc::ReplaceRange %d %d %s\n", nPos, nLen, OUStringToOString(rTxt, RTL_TEXTENCODING_UTF8).getStr());
m_sText
.
remove
(
nPos
,
nLen
);
m_sText
.
insert
(
nPos
,
rTxt
);
return
true
;
}
virtual
sal_Bool
SetAttr
(
xub_StrLen
,
xub_StrLen
,
sal_uInt16
,
SfxPoolItem
&
)
{
//fprintf(stderr, "TestAutoCorrDoc::SetAttr\n");
return
true
;
}
virtual
sal_Bool
SetINetAttr
(
xub_StrLen
,
xub_StrLen
,
const
String
&
)
{
//fprintf(stderr, "TestAutoCorrDoc::SetINetAttr\n");
return
true
;
}
virtual
const
String
*
GetPrevPara
(
sal_Bool
)
{
//fprintf(stderr, "TestAutoCorrDoc::GetPrevPara\n");
return
NULL
;
}
virtual
sal_Bool
ChgAutoCorrWord
(
sal_uInt16
&
rSttPos
,
sal_uInt16
nEndPos
,
SvxAutoCorrect
&
rACorrect
,
const
String
**
ppPara
)
{
//fprintf(stderr, "TestAutoCorrDoc::ChgAutoCorrWord\n");
if
(
m_sText
.
isEmpty
())
return
false
;
const
SvxAutocorrWord
*
pFnd
=
rACorrect
.
SearchWordsInList
(
m_sText
.
toString
(),
rSttPos
,
nEndPos
,
*
this
,
m_eLang
);
if
(
pFnd
&&
pFnd
->
IsTextOnly
())
{
m_sText
.
remove
(
rSttPos
,
nEndPos
);
m_sText
.
insert
(
rSttPos
,
pFnd
->
GetLong
());
if
(
ppPara
)
*
ppPara
=
NULL
;
//&pCurNode->GetString();
return
true
;
}
return
false
;
}
};
//https://bugs.freedesktop.org/show_bug.cgi?id=55693
//Two capitalized letters are not corrected if dash or slash are directly
//before the two letters
void
Test
::
testAutocorrect
()
{
OUString
sShareAutocorrFile
;
OUString
sUserAutocorrFile
;
SvxAutoCorrect
aAutoCorrect
(
sShareAutocorrFile
,
sUserAutocorrFile
);
{
OUString
sInput
(
"TEst-TEst"
);
sal_Unicode
cNextChar
(
' '
);
OUString
sExpected
(
"Test-Test "
);
TestAutoCorrDoc
aFoo
(
sInput
,
LANGUAGE_ENGLISH_US
);
aAutoCorrect
.
AutoCorrect
(
aFoo
,
sInput
,
sInput
.
getLength
(),
cNextChar
,
true
);
CPPUNIT_ASSERT_MESSAGE
(
"autocorrect"
,
aFoo
.
getResult
()
==
sExpected
);
}
{
OUString
sInput
(
"TEst/TEst"
);
sal_Unicode
cNextChar
(
' '
);
OUString
sExpected
(
"Test/Test "
);
TestAutoCorrDoc
aFoo
(
sInput
,
LANGUAGE_ENGLISH_US
);
aAutoCorrect
.
AutoCorrect
(
aFoo
,
sInput
,
sInput
.
getLength
(),
cNextChar
,
true
);
CPPUNIT_ASSERT_MESSAGE
(
"autocorrect"
,
aFoo
.
getResult
()
==
sExpected
);
}
}
CPPUNIT_TEST_SUITE_REGISTRATION
(
Test
);
}
...
...
editeng/source/misc/svxacorr.cxx
Dosyayı görüntüle @
a5263707
...
...
@@ -1458,12 +1458,15 @@ sal_uLong SvxAutoCorrect::AutoCorrect( SvxAutoCorrDoc& rDoc, const String& rTxt,
if
(
nHelpId
)
{
nHelpId
-=
1
;
Application
::
GetHelp
()
->
OpenHelpAgent
(
aHelpIds
[
nHelpId
]
);
Help
*
pHelp
=
Application
::
GetHelp
();
if
(
pHelp
)
{
nHelpId
-=
1
;
Application
::
GetHelp
()
->
OpenHelpAgent
(
aHelpIds
[
nHelpId
]
);
}
}
}
return
nRet
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment