#!/bin/sh
set -e
-TESTDIR=$(readlink -f $(dirname $0))
-. $TESTDIR/framework
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
setupenvironment
configarchitecture "i386"
-if [ ! -x ${BUILDDIRECTORY}/apt ]; then
- msgmsg "No ${BUILDDIRECTORY}/apt"
- msgskip
- exit 0
-fi
-
-DESCR='Some description that has a unusual word xxyyzz and aabbcc'
+DESCR='Some description that has a unusual word xxyyzz and aabbcc and a UPPERCASE'
DESCR2='Some other description with the unusual aabbcc only'
-insertpackage 'unstable' 'foo' 'all' '1.0' '' '' "$DESCR"
+insertpackage 'unstable' 'foo' 'all' '1.0' '' '' "$DESCR
+ Long description of stuff and such, with lines
+ .
+ and paragraphs and everything."
insertpackage 'testing' 'bar' 'i386' '2.0' '' '' "$DESCR2"
setupaptarchive
-APTARCHIVE=$(readlink -f ./aptarchive)
+APTARCHIVE="$(readlink -f ./aptarchive)"
+
+testfailureequal 'E: You must give at least one search pattern' aptcache search
+testfailureequal 'E: You must give at least one search pattern' apt search
# with OP progress
-testequal "Sorting...
+testsuccessequal "Sorting...
Full Text Search...
foo/unstable 1.0 all
$DESCR
" apt search xxyyzz
# without op progress
-testequal "foo/unstable 1.0 all
+testsuccessequal "foo/unstable 1.0 all
$DESCR
" apt search -qq xxyyzz
+testempty apt search -qq --names-only xxyyzz
+
+# search name
+testsuccessequal "foo/unstable 1.0 all
+ $DESCR
+" apt search -qq foo
+testsuccessequal "foo/unstable 1.0 all
+ $DESCR
+" apt search -qq --names-only foo
# search with multiple words is a AND search
-testequal "foo/unstable 1.0 all
+testsuccessequal "foo/unstable 1.0 all
$DESCR
" apt search -qq aabbcc xxyyzz
+testsuccessequal "foo/unstable 1.0 all
+ $DESCR
+" apt search -qq 'a+b+c+' 'i*xxy{0,2}zz'
+
+# search is not case-sensitive by default
+testsuccessequal "foo/unstable 1.0 all
+ $DESCR
+" apt search -qq uppercase
+testsuccessequal "foo/unstable 1.0 all
+ $DESCR
+" apt search -qq 'up[pP]erc[Aa]se'
+
+# search is done in the long description
+testsuccessequal "foo/unstable 1.0 all
+ $DESCR
+" apt search -qq 'long description'
+testsuccessequal "foo/unstable 1.0 all
+ $DESCR
+ Long description of stuff and such, with lines
+ .
+ and paragraphs and everything.
+" apt search --full -qq 'long description'
# output is sorted and search word finds both package
-testequal "bar/testing 2.0 i386
+testsuccessequal "bar/testing 2.0 i386
$DESCR2
foo/unstable 1.0 all