diff options
author | Hiroshi Sumita <hsumita@chromium.org> | 2012-06-12 11:43:52 +0900 |
---|---|---|
committer | Hiroshi Sumita <hsumita@chromium.org> | 2012-06-12 11:43:52 +0900 |
commit | 37b78c95090c4d60045d451ca54d0dde3847d0f6 (patch) | |
tree | d83bbf5b51cdccb45358a2ce9ebc3a515dd5d0c3 | |
parent | 0761df67ceccd827f01e8326e24e91697a29b367 (diff) | |
download | pyzy-37b78c95090c4d60045d451ca54d0dde3847d0f6.tar.gz |
Remvoes unused or not-maintained files.
BUG=None
TEST=Manual
Review URL: https://codereview.appspot.com/6294051
-rw-r--r-- | debian/changelog.in | 5 | ||||
-rw-r--r-- | debian/compat | 1 | ||||
-rw-r--r-- | debian/control | 51 | ||||
-rw-r--r-- | debian/copyright | 40 | ||||
-rw-r--r-- | debian/docs | 2 | ||||
-rw-r--r-- | debian/ibus-pinyin.lintian-overrides | 1 | ||||
-rwxr-xr-x | debian/rules | 110 | ||||
-rw-r--r-- | debian/source/format | 1 | ||||
-rw-r--r-- | debian/watch | 3 | ||||
-rw-r--r-- | scripts/genpuncttable.py | 32 | ||||
-rw-r--r-- | scripts/punct.py | 100 | ||||
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/PyZyTest.cc | 1275 |
13 files changed, 0 insertions, 1622 deletions
diff --git a/debian/changelog.in b/debian/changelog.in deleted file mode 100644 index 95bfd5a..0000000 --- a/debian/changelog.in +++ /dev/null @@ -1,5 +0,0 @@ -ibus-pinyin (${version}-1phuang${release}~${serie}1) ${serie}; urgency=low - - * Upstream release. - - -- Peng Huang <shawn.p.huang@gmail.com> ${date} diff --git a/debian/compat b/debian/compat deleted file mode 100644 index 7f8f011..0000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -7 diff --git a/debian/control b/debian/control deleted file mode 100644 index 8ad3368..0000000 --- a/debian/control +++ /dev/null @@ -1,51 +0,0 @@ -Source: ibus-pinyin -Section: utils -Priority: optional -Maintainer: LI Daobing <lidaobing@debian.org> -Build-Depends: debhelper (>= 7), autotools-dev, pkg-config, - libsqlite3-dev (>= 3.6), sqlite3, uuid-dev, libopencc-dev (>= 0.0.4~pre.1) -Standards-Version: 3.9.1 -Homepage: http://code.google.com/p/ibus -Vcs-Bzr: lp:~lidaobing/ibus/ibus-pinyin -Vcs-Browser: https://code.launchpad.net/~lidaobing/ibus/ibus-pinyin - -Package: ibus-pinyin -Architecture: any -Depends: ibus-pinyin-db-open-phrase (=${source:Version}) | ibus-pinyin-db-android (=${source:Version}), - ${shlibs:Depends}, ${misc:Depends} -Description: pinyin engine for ibus - ibus-pinyin is a im engine for Chinese, based on ibus. - . - this package provide one input method: - * pinyin: pinyin input method. - . - for more information on pinyin input method, check - http://en.wikipedia.org/wiki/Pinyin_method . - -Package: ibus-pinyin-db-open-phrase -Architecture: all -Depends: ${misc:Depends}, pinyin-database (>= 1.2.99-3~), pinyin-database (<< 1.2.100) -Description: pinyin engine for ibus, open-phrase database - ibus-pinyin is a im engine for Chinese, based on ibus. - . - this package provide one input method: - * pinyin: pinyin input method. - . - for more information on pinyin input method, check - http://en.wikipedia.org/wiki/Pinyin_method . - . - This package contains the open-phrase data files used by ibus-pinyin. - -Package: ibus-pinyin-db-android -Architecture: all -Depends: ${misc:Depends} -Description: pinyin engine for ibus, android database - ibus-pinyin is a im engine for Chinese, based on ibus. - . - this package provide one input method: - * pinyin: pinyin input method. - . - for more information on pinyin input method, check - http://en.wikipedia.org/wiki/Pinyin_method . - . - This package contains the android data files used by ibus-pinyin. diff --git a/debian/copyright b/debian/copyright deleted file mode 100644 index 59ac1ed..0000000 --- a/debian/copyright +++ /dev/null @@ -1,40 +0,0 @@ -This package was debianized by: - - LI Daobing <lidaobing@gmail.com> on Sun, 28 Dec 2008 20:30:06 +0800 - -It was downloaded from: - - http://code.google.com/p/ibus/downloads/list - -Upstream Author: - - Huang Peng <shawn.p.huang@gmail.com> - -Copyright: - - Copyright © 2007-2008 Huang Peng <shawn.p.huang@gmail.com> - -License: - - This package is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this package; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -On Debian systems, the complete text of the GNU General -Public License can be found in `/usr/share/common-licenses/GPL'. - -The Debian packaging is: - - Copyright © 2008, LI Daobing <lidaobing@gmail.com> - -and is licensed under the GPL, see above. diff --git a/debian/docs b/debian/docs deleted file mode 100644 index 55bc0a6..0000000 --- a/debian/docs +++ /dev/null @@ -1,2 +0,0 @@ -README -AUTHORS diff --git a/debian/ibus-pinyin.lintian-overrides b/debian/ibus-pinyin.lintian-overrides deleted file mode 100644 index cd5b9c9..0000000 --- a/debian/ibus-pinyin.lintian-overrides +++ /dev/null @@ -1 +0,0 @@ -ibus-pinyin: binary-without-manpage diff --git a/debian/rules b/debian/rules deleted file mode 100755 index e5ea124..0000000 --- a/debian/rules +++ /dev/null @@ -1,110 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -DEBIAN_VERSION = $(shell dpkg-parsechangelog | egrep '^Version: ' | sed s/"Version: "//) -UPSTREAM_VERSION = $(shell echo $(DEBIAN_VERSION) | sed s/+.-.*//) - -# These are used for cross-compiling and for saving the configure script -# from having to guess our platform (since we know it already) -DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) -ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) -CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) -else -CROSS= --build $(DEB_BUILD_GNU_TYPE) -endif - - - -config.status: configure - dh_testdir -ifneq "$(wildcard /usr/share/misc/config.sub)" "" - cp -f /usr/share/misc/config.sub config.sub -endif -ifneq "$(wildcard /usr/share/misc/config.guess)" "" - cp -f /usr/share/misc/config.guess config.guess -endif - dh_auto_configure -- --enable-opencc --enable-lua-extension --disable-boost - -build: build-stamp - -build-stamp: config.status - dh_testdir - $(MAKE) - touch $@ - -clean: - dh_testdir - dh_testroot - rm -f build-stamp install-stamp - - # Add here commands to clean up after the build process. - [ ! -f Makefile ] || $(MAKE) distclean - rm -f config.sub config.guess config.log - rm -f data/db/android/*.pyc - - dh_clean - -install: install-stamp -install-stamp: build - dh_testdir - dh_testroot - dh_prep - dh_installdirs - - $(MAKE) DESTDIR=$(CURDIR)/debian/ibus-pinyin install - rm -f $(CURDIR)/debian/ibus-pinyin/usr/share/ibus-pinyin/db/COPYING - mkdir -p $(CURDIR)/debian/ibus-pinyin-db-android/usr/share/ibus-pinyin/ - mv $(CURDIR)/debian/ibus-pinyin/usr/share/ibus-pinyin/db $(CURDIR)/debian/ibus-pinyin-db-android/usr/share/ibus-pinyin/ - rm -f $(CURDIR)/debian/ibus-pinyin-db-android/usr/share/ibus-pinyin/db/create_index.sql - mkdir -p $(CURDIR)/debian/ibus-pinyin-db-open-phrase/usr/share/ibus-pinyin/db - ln -s /usr/share/pinyin-database/main.db $(CURDIR)/debian/ibus-pinyin-db-open-phrase/usr/share/ibus-pinyin/db/open-phrase.db - touch $@ - -# Build architecture-independent files here. -binary-arch: install - dh_testdir -a - dh_testroot -a - dh_installchangelogs -a - dh_installdocs -a - dh_installexamples -a - dh_installman -a - dh_pysupport -a - dh_lintian -a - dh_link -a - dh_strip -a - dh_compress -a - dh_fixperms -a - dh_installdeb -a - dh_shlibdeps -a - dh_gencontrol -a - dh_md5sums -a - dh_builddeb -a - -binary-indep: install - dh_testdir -i - dh_testroot -i - dh_installchangelogs -i - dh_installdocs -i - dh_installexamples -i - dh_installman -i - dh_pysupport -i - dh_lintian -i - dh_link -i - dh_compress -i - dh_fixperms -i - dh_installdeb -i - dh_gencontrol -i - dh_md5sums -i - dh_builddeb -i - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install diff --git a/debian/source/format b/debian/source/format deleted file mode 100644 index 163aaf8..0000000 --- a/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/debian/watch b/debian/watch deleted file mode 100644 index 18f953c..0000000 --- a/debian/watch +++ /dev/null @@ -1,3 +0,0 @@ -version=3 -http://code.google.com/p/ibus/downloads/list?can=2 \ -http://ibus.googlecode.com/files/ibus-pinyin-([0-9].*)\.tar\.gz diff --git a/scripts/genpuncttable.py b/scripts/genpuncttable.py deleted file mode 100644 index 4e58050..0000000 --- a/scripts/genpuncttable.py +++ /dev/null @@ -1,32 +0,0 @@ -# vim:set et sts=4: -# -*- coding: utf-8 -*- - -from punct import * - -def tocstr(s): - s = s.replace('\\', '\\\\') - s = s.replace('"', '\\"') - return '"%s"' % s - -def gen_table(): - array = [] - i = 0 - print 'static const char * const' - print 'puncts[] = {' - for k, vs in punct_map: - k = tocstr(k) - vs = map(tocstr, vs) - array.append((i, k)) - line = ' %s, %s, NULL,' % (k, ", ".join(vs)) - print line.encode("utf8") - i += len(vs) + 2 - print '};' - print - print 'static const char * const * const' - print 'punct_table[] = {' - for i, k in array: - print ' &puncts[%d], // %s' % (i, k) - print '};' - -if __name__ == "__main__": - gen_table() diff --git a/scripts/punct.py b/scripts/punct.py deleted file mode 100644 index 8ea2478..0000000 --- a/scripts/punct.py +++ /dev/null @@ -1,100 +0,0 @@ -# vim:set et sts=4: -# -*- coding: utf-8 -*- - -punct_map = ( - (u'', (u'·', u',', u'。', u'「', u'」', u'、', u':', u';', u'?', u'!',)), - (u'!', (u'!', u'﹗', u'‼', u'⁉',)), - (u'"', (u'“', u'”', u'"',)), - (u'#', (u'#', u'﹟', u'♯',)), - (u'$', (u'$', u'€', u'﹩', u'¢', u'£', u'¥',)), - (u'%', (u'%', u'﹪', u'‰', u'‱', u'㏙', u'㏗',)), - (u'&', (u'&', u'﹠',)), - (u'\'', (u'、', u'‘', u'’',)), - (u'(', (u'(', u'︵', u'﹙',)), - (u')', (u')', u'︶', u'﹚',)), - (u'*', (u'*', u'×', u'※', u'╳', u'﹡', u'⁎', u'⁑', u'⁂', u'⌘',)), - (u'+', (u'+', u'±', u'﹢',)), - (u',', (u',', u'、', u'﹐', u'﹑',)), - (u'-', (u'…', u'—', u'-', u'¯', u'﹉', u' ̄', u'﹊', u'ˍ', u'–', u'‥',)), - (u'.', (u'。', u'·', u'‧', u'﹒', u'.',)), - (u'/', (u'/', u'÷', u'↗', u'↙', u'∕',)), - (u'0', (u'0', u'0')), - (u'1', (u'1', u'1')), - (u'2', (u'2', u'2')), - (u'3', (u'3', u'3')), - (u'4', (u'4', u'4')), - (u'5', (u'5', u'5')), - (u'6', (u'6', u'6')), - (u'7', (u'7', u'7')), - (u'8', (u'8', u'8')), - (u'9', (u'9', u'9')), - (u':', (u':', u'︰', u'﹕',)), - (u';', (u';', u'﹔',)), - (u'<', (u'<', u'〈', u'《', u'︽', u'︿', u'﹤',)), - (u'=', (u'=', u'≒', u'≠', u'≡', u'≦', u'≧', u'﹦',)), - (u'>', (u'>', u'〉', u'》', u'︾', u'﹀', u'﹥',)), - (u'?', (u'?', u'﹖', u'⁇', u'⁈',)), - (u'@', (u'@', u'⊕', u'⊙', u'㊣', u'﹫', u'◉', u'◎',)), - (u'A', (u'A', u'A')), - (u'B', (u'B', u'B')), - (u'C', (u'C', u'C')), - (u'D', (u'D', u'D')), - (u'E', (u'E', u'E')), - (u'F', (u'F', u'F')), - (u'G', (u'G', u'G')), - (u'H', (u'H', u'H')), - (u'I', (u'I', u'I')), - (u'J', (u'J', u'J')), - (u'K', (u'K', u'K')), - (u'L', (u'L', u'L')), - (u'M', (u'M', u'M')), - (u'N', (u'N', u'N')), - (u'O', (u'O', u'O')), - (u'P', (u'P', u'P')), - (u'Q', (u'Q', u'Q')), - (u'R', (u'R', u'R')), - (u'S', (u'S', u'S')), - (u'T', (u'T', u'T')), - (u'U', (u'U', u'U')), - (u'V', (u'V', u'V')), - (u'W', (u'W', u'W')), - (u'X', (u'X', u'X')), - (u'Y', (u'Y', u'Y')), - (u'Z', (u'Z', u'Z')), - (u'[', (u'「', u'[', u'『', u'【', u'「', u'︻', u'﹁', u'﹃',)), - (u'\\', (u'\', u'↖', u'↘', u'﹨',)), - (u']', (u'」', u']', u'』', u'】', u'」', u'︼', u'﹂', u'﹄',)), - (u'^', (u'︿', u'〈', u'《', u'︽', u'﹤', u'<',)), - (u'_', (u'_', u'╴', u'←', u'→',)), - (u'`', (u'‵', u'′',)), - (u'a', (u'a', u'a')), - (u'b', (u'b', u'b')), - (u'c', (u'c', u'c')), - (u'd', (u'd', u'd')), - (u'e', (u'e', u'e')), - (u'f', (u'f', u'f')), - (u'g', (u'g', u'g')), - (u'h', (u'h', u'h')), - (u'i', (u'i', u'i')), - (u'j', (u'j', u'j')), - (u'k', (u'k', u'k')), - (u'l', (u'l', u'l')), - (u'm', (u'm', u'm')), - (u'n', (u'n', u'n')), - (u'o', (u'o', u'o')), - (u'p', (u'p', u'p')), - (u'q', (u'q', u'q')), - (u'r', (u'r', u'r')), - (u's', (u's', u's')), - (u't', (u't', u't')), - (u'u', (u'u', u'u')), - (u'v', (u'v', u'v')), - (u'w', (u'w', u'w')), - (u'x', (u'x', u'x')), - (u'y', (u'y', u'y')), - (u'z', (u'z', u'z')), - (u'{', (u'{', u'︷', u'﹛', u'〔', u'﹝', u'︹',)), - (u'|', (u'|', u'↑', u'↓', u'∣', u'∥', u'︱', u'︳', u'︴', u'¦',)), - (u'}', (u'}', u'︸', u'﹜', u'〕', u'﹞', u'︺',)), - (u'~', (u'~', u'﹋', u'﹌',)), -) diff --git a/src/Makefile.am b/src/Makefile.am index 23ad8be..fc40a84 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -66,7 +66,6 @@ libpyzy_c_sources = \ SpecialPhraseTable.cc \ Variant.cc \ $(NULL) -# Test.cc libpyzy_h_sources = \ Bopomofo.h \ BopomofoContext.h \ diff --git a/src/PyZyTest.cc b/src/PyZyTest.cc deleted file mode 100644 index 120ec9f..0000000 --- a/src/PyZyTest.cc +++ /dev/null @@ -1,1275 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang <shawn.p.huang@gmail.com> - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include <gtest/gtest.h> -#include <glib/gstdio.h> - -#include <iostream> -#include <algorithm> - -#include "PyZyConfig.h" -#include "PyZyDoublePinyinContext.h" -#include "PyZyFullPinyinContext.h" -#include "PyZyBopomofoContext.h" -#include "PyZyPhoneticContext.h" - -#include "PyZyPinyinArray.h" -#include "PyZyDatabase.h" - -using namespace std; -using namespace PyZy; - -int main(int argc, char **argv) { - testing::InitGoogleTest (&argc, argv); - return RUN_ALL_TESTS (); -} - -class PyZyTest : public testing::Test { -protected: - virtual void SetUp () { - InputContext::init ("libpyzy-test"); - } - - virtual void TearDown () { - PyZy::Database::finalize (); - - std::string db_file = g_get_user_cache_dir(); - db_file += G_DIR_SEPARATOR_S; - db_file += "libpyzy-test"; - db_file += G_DIR_SEPARATOR_S; - db_file += "user-1.0.db"; - g_unlink (db_file.c_str ()); - } -}; - -class CounterObserver : public PyZy::PhoneticContext::Observer { -public: - void commitText (const InputContext *context, const std::string &commit_text) { - m_commited_text = commit_text; - ++m_commit_text; - } - void preeditTextChanged (const InputContext *context) { ++m_preedit_text; } - void auxiliaryTextChanged (const InputContext *context) { ++m_auxiliary_text; } - void lookupTableChanged (const InputContext *context) { ++m_lookup_table; } - - string commitedText () { return m_commited_text; } - unsigned int commitTextCount () { return m_commit_text; } - unsigned int preeditTextCount () { return m_preedit_text; } - unsigned int auxiliaryTextCount () { return m_auxiliary_text; } - unsigned int lookupTableCount () { return m_lookup_table; } - - void clear () { - m_commited_text.clear (); - m_commit_text = 0; - m_preedit_text = 0; - m_auxiliary_text = 0; - m_lookup_table = 0; - } -private: - string m_commited_text; - unsigned int m_commit_text; - unsigned int m_preedit_text; - unsigned int m_auxiliary_text; - unsigned int m_lookup_table; -}; - -void insertKeys (PhoneticContext &context, const string &keys) { - for (size_t i = 0; i < keys.size (); ++i) { - context.insert (keys[i]); - } -} - -TEST_F (PyZyTest, FullPinyinBasicTest) { - CounterObserver observer; - FullPinyinContext context(PinyinConfig::instance (), &observer); - - { // Reset - context.reset (); - - observer.clear (); - insertKeys (context, "nihao"); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("nihao", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ni hao|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (5, observer.preeditTextCount ()); - EXPECT_EQ (5, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.reset (); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - } - - { // Commit directly - context.reset (); - - observer.clear (); - insertKeys (context, "nihao"); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("nihao", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ni hao|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (5, observer.preeditTextCount ()); - EXPECT_EQ (5, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.commit (InputContext::TYPE_CONVERTED); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("nihao", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } - - { // Select candidate - context.reset (); - - observer.clear (); - insertKeys (context, "nihao"); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("nihao", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ni hao|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (5, observer.preeditTextCount ()); - EXPECT_EQ (5, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (0); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("你好", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } - - { // Select special phrases. - context.reset (); - - observer.clear (); - insertKeys (context, "aazhi"); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("AA制", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("aazhi|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (5, observer.preeditTextCount ()); - EXPECT_EQ (5, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (0); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("AA制", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } - - { // Select special phrases with some operations. - context.reset (); - - observer.clear (); - insertKeys (context, "aazhii"); - EXPECT_EQ (6, context.cursor ()); - EXPECT_EQ ("aazhii", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("啊啊之", context.conversionText ()); - EXPECT_EQ ("i", context.restText ()); - EXPECT_EQ ("a a zhi i|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (6, observer.preeditTextCount ()); - EXPECT_EQ (6, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.moveCursorLeft (); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhii", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("AA制", context.conversionText ()); - EXPECT_EQ ("i", context.restText ()); - EXPECT_EQ ("aazhi|i", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (0); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhii", context.inputText ()); - EXPECT_EQ ("AA制", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("i", context.restText ()); - EXPECT_EQ ("|i", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.commit (InputContext::TYPE_CONVERTED); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("AA制i", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } - - { // Many operations - context.reset (); - - observer.clear (); - insertKeys (context, "aazhi"); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("AA制", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("aazhi|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (5, observer.preeditTextCount ()); - EXPECT_EQ (5, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.focusCandidate (1); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("啊啊之", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("a a zhi|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (4); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("阿", context.selectedText ()); - EXPECT_EQ ("啊之", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("a zhi|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.unselectCandidates (); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("啊啊之", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("a a zhi|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.moveCursorLeft (); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("a a zh|i", context.restText ()); - EXPECT_EQ ("a a zh|i", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.insert ('i'); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhii", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("AA制", context.conversionText ()); - EXPECT_EQ ("i", context.restText ()); - EXPECT_EQ ("aazhi|i", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.removeCharBefore (); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("a a zh|i", context.restText ()); - EXPECT_EQ ("a a zh|i", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.moveCursorRight (); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("AA制", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("aazhi|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.removeWordBefore (); - EXPECT_EQ (2, context.cursor ()); - EXPECT_EQ ("aa", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("啊啊", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("a a|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - insertKeys (context, "nihao"); - EXPECT_EQ (7, context.cursor ()); - EXPECT_EQ ("aanihao", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("啊啊你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("a a ni hao|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (5, observer.preeditTextCount ()); - EXPECT_EQ (5, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (1); - EXPECT_EQ (7, context.cursor ()); - EXPECT_EQ ("aanihao", context.inputText ()); - EXPECT_EQ ("啊啊", context.selectedText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ni hao|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.commit (InputContext::TYPE_CONVERTED); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("啊啊nihao", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } -} - -TEST_F (PyZyTest, DoublePinyinBasicTest) { - CounterObserver observer; - DoublePinyinContext context(PinyinConfig::instance (), &observer); - - { // Reset - context.reset (); - - observer.clear (); - insertKeys (context, "nihk"); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("nihk", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ni hao|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (4, observer.preeditTextCount ()); - EXPECT_EQ (4, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.reset (); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - } - - { // Commit directly - context.reset (); - - observer.clear (); - insertKeys (context, "nihk"); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("nihk", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ni hao|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (4, observer.preeditTextCount ()); - EXPECT_EQ (4, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.commit (InputContext::TYPE_CONVERTED); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("nihk", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } - - { // Select candidate - context.reset (); - - observer.clear (); - insertKeys (context, "nihk"); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("nihk", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ni hao|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (4, observer.preeditTextCount ()); - EXPECT_EQ (4, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (0); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("你好", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } - - { // Select special phrases. - context.reset (); - - observer.clear (); - insertKeys (context, "aazhi"); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("AA制", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("aazhi|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (5, observer.preeditTextCount ()); - EXPECT_EQ (4, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (0); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("AA制", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } - - { // Select special phrases with some operations. - context.reset (); - - observer.clear (); - insertKeys (context, "aazhii"); - EXPECT_EQ (6, context.cursor ()); - EXPECT_EQ ("aazhii", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("啊展翅", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("a zang chi|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (6, observer.preeditTextCount ()); - EXPECT_EQ (5, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.moveCursorLeft (); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhii", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("AA制", context.conversionText ()); - EXPECT_EQ ("i", context.restText ()); - EXPECT_EQ ("aazhi|i", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (0); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhii", context.inputText ()); - EXPECT_EQ ("AA制", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("i", context.restText ()); - EXPECT_EQ ("|i", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.commit (InputContext::TYPE_CONVERTED); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("AA制i", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } - - { // Many operations - context.reset (); - - observer.clear (); - insertKeys (context, "aazhi"); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("AA制", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("aazhi|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (5, observer.preeditTextCount ()); - EXPECT_EQ (4, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.focusCandidate (1); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("啊战场", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("a zang ch|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (3); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("阿", context.selectedText ()); - EXPECT_EQ ("战场", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("zang ch|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - // TODO(hsumita) fix. maybe we should get AA制 - observer.clear (); - context.unselectCandidates (); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("啊战场", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("a zang ch|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.moveCursorLeft (); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("a zang|i", context.restText ()); - EXPECT_EQ ("a zang|i", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.insert ('i'); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhii", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("AA制", context.conversionText ()); - EXPECT_EQ ("i", context.restText ()); - EXPECT_EQ ("aazhi|i", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.removeCharBefore (); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("a zang|i", context.restText ()); - EXPECT_EQ ("a zang|i", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.moveCursorRight (); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("AA制", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("aazhi|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.removeWordBefore (); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("aazh", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("啊张", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("a zang|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - insertKeys (context, "nihk"); - EXPECT_EQ (8, context.cursor ()); - EXPECT_EQ ("aazhnihk", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("啊张你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("a zang ni hao|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (4, observer.preeditTextCount ()); - EXPECT_EQ (4, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (1); - EXPECT_EQ (8, context.cursor ()); - EXPECT_EQ ("aazhnihk", context.inputText ()); - EXPECT_EQ ("啊", context.selectedText ()); - EXPECT_EQ ("张你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("zang ni hao|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.commit (InputContext::TYPE_CONVERTED); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("啊zhnihk", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } -} - -TEST_F (PyZyTest, BopomofoBasicTest) { - CounterObserver observer; - BopomofoContext context(BopomofoConfig::instance (), &observer); - - { // Reset - context.reset (); - - observer.clear (); - insertKeys (context, "sucl"); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("sucl", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄋㄧ,ㄏㄠ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (4, observer.preeditTextCount ()); - EXPECT_EQ (4, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.reset (); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - } - - { // Commit directly - context.reset (); - - observer.clear (); - insertKeys (context, "sucl"); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("sucl", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄋㄧ,ㄏㄠ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (4, observer.preeditTextCount ()); - EXPECT_EQ (4, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.commit (InputContext::TYPE_RAW); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("sucl", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } - - { // Select candidate - context.reset (); - - observer.clear (); - insertKeys (context, "sucl"); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("sucl", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄋㄧ,ㄏㄠ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (4, observer.preeditTextCount ()); - EXPECT_EQ (4, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (0); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("你好", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } - - { // Don't use special phrases for bopomofo. - context.reset (); - - observer.clear (); - insertKeys (context, "aazhi"); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("妈妈好吃哦", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄇ,ㄇ,ㄈ,ㄘ,ㄛ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (5, observer.preeditTextCount ()); - EXPECT_EQ (5, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (0); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("妈妈好吃哦", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } - - { // Select special phrases with some operations. - context.reset (); - - observer.clear (); - insertKeys (context, "aazhii"); - EXPECT_EQ (6, context.cursor ()); - EXPECT_EQ ("aazhii", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("妈妈好吃哦哦", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄇ,ㄇ,ㄈ,ㄘ,ㄛ,ㄛ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (6, observer.preeditTextCount ()); - EXPECT_EQ (6, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.moveCursorLeft (); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhii", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("ㄇㄇㄈㄘㄛ ㄛ", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄇ,ㄇ,ㄈ,ㄘ,ㄛ|ㄛ", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (0); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhii", context.inputText ()); - EXPECT_EQ ("妈妈好吃哦", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("ㄛ", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.commit (InputContext::TYPE_CONVERTED); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("妈妈好吃哦ㄛ", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } - - { // Many operations - context.reset (); - - observer.clear (); - insertKeys (context, "aazhi"); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("妈妈好吃哦", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄇ,ㄇ,ㄈ,ㄘ,ㄛ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (5, observer.preeditTextCount ()); - EXPECT_EQ (5, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.focusCandidate (1); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("妈妈", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄇ,ㄇ,ㄈ,ㄘ,ㄛ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (3); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("慢慢", context.selectedText ()); - EXPECT_EQ ("好吃哦", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄈ,ㄘ,ㄛ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - // TODO(hsumita) maybe we should get AA制 - observer.clear (); - context.unselectCandidates (); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("妈妈好吃哦", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄇ,ㄇ,ㄈ,ㄘ,ㄛ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - // TODO (hsumita): should we use a space as a separator of restText - // TODO (hsumita): "ㄇㄇㄈㄘ ㄛ" is conversionText or restText ? - observer.clear (); - context.moveCursorLeft (); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("ㄇㄇㄈㄘ ㄛ", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄇ,ㄇ,ㄈ,ㄘ|ㄛ", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.insert ('i'); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhii", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("ㄇㄇㄈㄘㄛ ㄛ", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄇ,ㄇ,ㄈ,ㄘ,ㄛ|ㄛ", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.removeCharBefore (); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("ㄇㄇㄈㄘ ㄛ", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄇ,ㄇ,ㄈ,ㄘ|ㄛ", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.moveCursorRight (); - EXPECT_EQ (5, context.cursor ()); - EXPECT_EQ ("aazhi", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("妈妈好吃哦", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄇ,ㄇ,ㄈ,ㄘ,ㄛ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.removeWordBefore (); - EXPECT_EQ (4, context.cursor ()); - EXPECT_EQ ("aazh", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("妈妈好吃", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄇ,ㄇ,ㄈ,ㄘ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - insertKeys (context, "nihk"); - EXPECT_EQ (8, context.cursor ()); - EXPECT_EQ ("aazhnihk", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("妈妈好吃是哦车", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄇ,ㄇ,ㄈ,ㄘ,ㄙ,ㄛ,ㄘㄜ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (4, observer.preeditTextCount ()); - EXPECT_EQ (4, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.selectCandidate (1); - EXPECT_EQ (8, context.cursor ()); - EXPECT_EQ ("aazhnihk", context.inputText ()); - EXPECT_EQ ("妈妈", context.selectedText ()); - EXPECT_EQ ("好吃是哦车", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("ㄈ,ㄘ,ㄙ,ㄛ,ㄘㄜ|", context.auxiliaryText ()); - EXPECT_LT (0, context.candidates ().size ()); - EXPECT_EQ ("", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (0, observer.commitTextCount ()); - - observer.clear (); - context.commit (InputContext::TYPE_CONVERTED); - EXPECT_EQ (0, context.cursor ()); - EXPECT_EQ ("", context.inputText ()); - EXPECT_EQ ("", context.selectedText ()); - EXPECT_EQ ("", context.conversionText ()); - EXPECT_EQ ("", context.restText ()); - EXPECT_EQ ("", context.auxiliaryText ()); - EXPECT_EQ (0, context.candidates ().size ()); - EXPECT_EQ ("妈妈ㄈㄘㄙㄛㄘㄜ", observer.commitedText ()); - EXPECT_EQ (1, observer.preeditTextCount ()); - EXPECT_EQ (1, observer.lookupTableCount ()); - EXPECT_EQ (1, observer.commitTextCount ()); - } -} - -TEST_F (PyZyTest, Commit) { - { // Pinyin commit - CounterObserver observer; - FullPinyinContext context(PinyinConfig::instance (), &observer); - - observer.clear (); - insertKeys (context, "nihao"); - EXPECT_EQ ("nihao", context.inputText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("ni hao|", context.auxiliaryText ()); - - observer.clear (); - context.commit (InputContext::TYPE_RAW); - EXPECT_EQ ("nihao", observer.commitedText ()); - - context.reset (); - observer.clear (); - insertKeys (context, "nihao"); - EXPECT_EQ ("nihao", context.inputText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("ni hao|", context.auxiliaryText ()); - - observer.clear (); - context.commit (InputContext::TYPE_PHONETIC); - EXPECT_EQ ("nihao", observer.commitedText ()); - - context.reset (); - observer.clear (); - insertKeys (context, "nihao"); - EXPECT_EQ ("nihao", context.inputText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("ni hao|", context.auxiliaryText ()); - - // To get "你好", we should call selectCandidate(). - observer.clear (); - context.commit (InputContext::TYPE_CONVERTED); - EXPECT_EQ ("nihao", observer.commitedText ()); - } - - { // Bopomofo commit - CounterObserver observer; - BopomofoContext context(BopomofoConfig::instance (), &observer); - - observer.clear (); - insertKeys (context, "sucl"); - EXPECT_EQ ("sucl", context.inputText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("ㄋㄧ,ㄏㄠ|", context.auxiliaryText ()); - - observer.clear (); - context.commit (InputContext::TYPE_RAW); - EXPECT_EQ ("sucl", observer.commitedText ()); - - context.reset (); - observer.clear (); - insertKeys (context, "sucl"); - EXPECT_EQ ("sucl", context.inputText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("ㄋㄧ,ㄏㄠ|", context.auxiliaryText ()); - - observer.clear (); - context.commit (InputContext::TYPE_PHONETIC); - EXPECT_EQ ("ㄋㄧㄏㄠ", observer.commitedText ()); - - context.reset (); - observer.clear (); - insertKeys (context, "sucl"); - EXPECT_EQ ("sucl", context.inputText ()); - EXPECT_EQ ("你好", context.conversionText ()); - EXPECT_EQ ("ㄋㄧ,ㄏㄠ|", context.auxiliaryText ()); - - // To get "你好", we should call selectCandidate(). - observer.clear (); - context.commit (InputContext::TYPE_CONVERTED); - EXPECT_EQ ("ㄋㄧㄏㄠ", observer.commitedText ()); - } -} |