2020-08-19 09:41:20 -05:00
|
|
|
describe('Basic html theme search', function() {
|
|
|
|
|
|
|
|
describe('terms search', function() {
|
|
|
|
|
|
|
|
it('should find "C++" when in index', function() {
|
|
|
|
index = {
|
|
|
|
docnames:["index"],
|
|
|
|
filenames:["index.rst"],
|
|
|
|
terms:{'c++':0},
|
|
|
|
titles:["<no title>"],
|
|
|
|
titleterms:{}
|
|
|
|
}
|
|
|
|
Search.setIndex(index);
|
|
|
|
searchterms = ['c++'];
|
|
|
|
excluded = [];
|
|
|
|
terms = index.terms;
|
|
|
|
titleterms = index.titleterms;
|
|
|
|
|
|
|
|
hits = [[
|
|
|
|
"index",
|
|
|
|
"<no title>",
|
|
|
|
"",
|
|
|
|
null,
|
|
|
|
2,
|
|
|
|
"index.rst"
|
|
|
|
]];
|
|
|
|
expect(Search.performTermsSearch(searchterms, excluded, terms, titleterms)).toEqual(hits);
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
2022-03-19 17:40:51 -05:00
|
|
|
|
|
|
|
// This is regression test for https://github.com/sphinx-doc/sphinx/issues/3150
|
|
|
|
describe('splitQuery regression tests', () => {
|
|
|
|
|
|
|
|
it('can split English words', () => {
|
|
|
|
const parts = splitQuery(' Hello World ')
|
|
|
|
expect(parts).toEqual(['Hello', 'World'])
|
|
|
|
})
|
|
|
|
|
|
|
|
it('can split special characters', () => {
|
|
|
|
const parts = splitQuery('Pin-Code')
|
|
|
|
expect(parts).toEqual(['Pin', 'Code'])
|
|
|
|
})
|
|
|
|
|
|
|
|
it('can split Chinese characters', () => {
|
|
|
|
const parts = splitQuery('Hello from 中国 上海')
|
|
|
|
expect(parts).toEqual(['Hello', 'from', '中国', '上海'])
|
|
|
|
})
|
|
|
|
|
|
|
|
it('can split Emoji (surrogate pair) characters. It should keep emojis.', () => {
|
|
|
|
const parts = splitQuery('😁😁')
|
|
|
|
expect(parts).toEqual(['😁😁'])
|
|
|
|
})
|
|
|
|
|
|
|
|
it('can split umlauts. It should keep umlauts.', () => {
|
|
|
|
const parts = splitQuery('Löschen Prüfung Abändern ærlig spørsmål')
|
|
|
|
expect(parts).toEqual(['Löschen', 'Prüfung', 'Abändern', 'ærlig', 'spørsmål'])
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|