From 7ce775059f1b79b7c7661b7a6ce385f9fe226ade Mon Sep 17 00:00:00 2001 From: walljm Date: Mon, 16 Jan 2017 21:36:22 -0500 Subject: [PATCH] TESTS: moar tests... --- .hgignore | 1 + DynamicBibleIonic/src/Reference.spec.ts | 582 +++++++++--------- DynamicBibleIonic/src/app/app.component.ts | 16 +- DynamicBibleIonic/src/app/app.module.ts | 96 +-- DynamicBibleIonic/src/bible-service.spec.ts | 381 +++++++++--- .../components/strongs-modal/strongs-modal.ts | 6 +- .../src/components/strongs/strongs.ts | 6 +- .../src/components/words/words.ts | 8 +- DynamicBibleIonic/src/pages/search/search.ts | 444 ++++++------- 9 files changed, 893 insertions(+), 647 deletions(-) diff --git a/.hgignore b/.hgignore index 05c44d23..0a2f4edf 100644 --- a/.hgignore +++ b/.hgignore @@ -36,3 +36,4 @@ DynamicBibleIonic/platforms/android/build.gradle DynamicBibleIonic/platforms/android/android.json DynamicBibleIonic/platforms/android/AndroidManifest.xml DynamicBibleIonic/platforms/android/.gitignore +DynamicBibleIonic/.idea diff --git a/DynamicBibleIonic/src/Reference.spec.ts b/DynamicBibleIonic/src/Reference.spec.ts index 072897a7..44aad700 100644 --- a/DynamicBibleIonic/src/Reference.spec.ts +++ b/DynamicBibleIonic/src/Reference.spec.ts @@ -1,290 +1,292 @@ -import { Reference } from './Reference'; - -describe('Reference', () => { - - it('Should parse the reference: Gen 1:1', () => { - let ref = new Reference("Gen 1:1").toString(); - expect(ref).toBe('Genesis 1:1'); - }); - - it('Should parse the reference: Gen 1:1-11', () => { - let ref = new Reference("Gen 1:1-11").toString(); - expect(ref).toBe('Genesis 1:1 - 11'); - }); - - it('Should parse the reference: Gen 1-2', () => { - let ref = new Reference("Gen 1-2").toString(); - expect(ref).toBe('Genesis 1:1 - 2:*'); - }); - - it('Should parse the reference: John 3:16', () => { - let ref = new Reference("John 3:16").toString(); - expect(ref).toBe('John 3:16'); - }); - - it('Should parse the reference: John 3-6', () => { - let ref = new Reference("Jn 3-6").toString(); - expect(ref).toBe('John 3:1 - 6:*'); - }); - - it('Should parse the reference: 1 Corinthians 3:5-6:5', () => { - let ref = new Reference("1 Corinthians 3:5-6:5").toString(); - expect(ref).toBe('1 Corinthians 3:5 - 6:5'); - }); - - it('Should parse the reference: 2 Samuel 5:5-6:5', () => { - expect(new Reference("II sam 5:5-6:5").toString()).toBe('2 Samuel 5:5 - 6:5'); - }); - - let booknames = [ - { "abbr": "gen", "actual": "Genesis" }, - { "abbr": "ge", "actual": "Genesis" }, - { "abbr": "genesis", "actual": "Genesis" }, - { "abbr": "gn", "actual": "Genesis" }, - { "abbr": "exodus", "actual": "Exodus" }, - { "abbr": "ex", "actual": "Exodus" }, - { "abbr": "exo", "actual": "Exodus" }, - { "abbr": "exod", "actual": "Exodus" }, - { "abbr": "exd", "actual": "Exodus" }, - { "abbr": "leviticus", "actual": "Leviticus" }, - { "abbr": "lev", "actual": "Leviticus" }, - { "abbr": "le", "actual": "Leviticus" }, - { "abbr": "levi", "actual": "Leviticus" }, - { "abbr": "lv", "actual": "Leviticus" }, - { "abbr": "numbers", "actual": "Numbers" }, - { "abbr": "num", "actual": "Numbers" }, - { "abbr": "nu", "actual": "Numbers" }, - { "abbr": "numb", "actual": "Numbers" }, - { "abbr": "number", "actual": "Numbers" }, - { "abbr": "deuteronomy", "actual": "Deuteronomy" }, - { "abbr": "deut", "actual": "Deuteronomy" }, - { "abbr": "de", "actual": "Deuteronomy" }, - { "abbr": "dt", "actual": "Deuteronomy" }, - { "abbr": "deu", "actual": "Deuteronomy" }, - { "abbr": "joshua", "actual": "Joshua" }, - { "abbr": "josh", "actual": "Joshua" }, - { "abbr": "jos", "actual": "Joshua" }, - { "abbr": "judges", "actual": "Judges" }, - { "abbr": "jud", "actual": "Judges" }, - { "abbr": "jdg", "actual": "Judges" }, - { "abbr": "judg", "actual": "Judges" }, - { "abbr": "ruth", "actual": "Ruth" }, - { "abbr": "ru", "actual": "Ruth" }, - { "abbr": "1 samuel", "actual": "1 Samuel" }, - { "abbr": "1 sa", "actual": "1 Samuel" }, - { "abbr": "1 sam", "actual": "1 Samuel" }, - { "abbr": "1 sml", "actual": "1 Samuel" }, - { "abbr": "i samuel", "actual": "1 Samuel" }, - { "abbr": "i sa", "actual": "1 Samuel" }, - { "abbr": "i sam", "actual": "1 Samuel" }, - { "abbr": "i sml", "actual": "1 Samuel" }, - { "abbr": "1st samuel", "actual": "1 Samuel" }, - { "abbr": "1st sa", "actual": "1 Samuel" }, - { "abbr": "1st sam", "actual": "1 Samuel" }, - { "abbr": "1st sml", "actual": "1 Samuel" }, - { "abbr": "first samuel", "actual": "1 Samuel" }, - { "abbr": "first sa", "actual": "1 Samuel" }, - { "abbr": "first sam", "actual": "1 Samuel" }, - { "abbr": "first sml", "actual": "1 Samuel" }, - { "abbr": "2 samuel", "actual": "2 Samuel" }, - { "abbr": "2 sa", "actual": "2 Samuel" }, - { "abbr": "2 sam", "actual": "2 Samuel" }, - { "abbr": "2 sml", "actual": "2 Samuel" }, - { "abbr": "ii samuel", "actual": "2 Samuel" }, - { "abbr": "ii sa", "actual": "2 Samuel" }, - { "abbr": "ii sam", "actual": "2 Samuel" }, - { "abbr": "ii sml", "actual": "2 Samuel" }, - { "abbr": "2nd samuel", "actual": "2 Samuel" }, - { "abbr": "2nd sa", "actual": "2 Samuel" }, - { "abbr": "2nd sam", "actual": "2 Samuel" }, - { "abbr": "2nd sml", "actual": "2 Samuel" }, - { "abbr": "second samuel", "actual": "2 Samuel" }, - { "abbr": "second sa", "actual": "2 Samuel" }, - { "abbr": "second sam", "actual": "2 Samuel" }, - { "abbr": "second sml", "actual": "2 Samuel" }, - { "abbr": "sec samuel", "actual": "2 Samuel" }, - { "abbr": "sec sa", "actual": "2 Samuel" }, - { "abbr": "sec sam", "actual": "2 Samuel" }, - { "abbr": "sec sml", "actual": "2 Samuel" }, - { "abbr": "1 kings", "actual": "1 Kings" }, - { "abbr": "1 king", "actual": "1 Kings" }, - { "abbr": "1 kgs", "actual": "1 Kings" }, - { "abbr": "1 kn", "actual": "1 Kings" }, - { "abbr": "1 k", "actual": "1 Kings" }, - { "abbr": "1 ki", "actual": "1 Kings" }, - { "abbr": "i kings", "actual": "1 Kings" }, - { "abbr": "i king", "actual": "1 Kings" }, - { "abbr": "i kgs", "actual": "1 Kings" }, - { "abbr": "i kn", "actual": "1 Kings" }, - { "abbr": "i k", "actual": "1 Kings" }, - { "abbr": "i ki", "actual": "1 Kings" }, - { "abbr": "1st kings", "actual": "1 Kings" }, - { "abbr": "1st king", "actual": "1 Kings" }, - { "abbr": "1st kgs", "actual": "1 Kings" }, - { "abbr": "1st kn", "actual": "1 Kings" }, - { "abbr": "1st k", "actual": "1 Kings" }, - { "abbr": "1st ki", "actual": "1 Kings" }, - { "abbr": "first kings", "actual": "1 Kings" }, - { "abbr": "first king", "actual": "1 Kings" }, - { "abbr": "first kgs", "actual": "1 Kings" }, - { "abbr": "first kn", "actual": "1 Kings" }, - { "abbr": "first k", "actual": "1 Kings" }, - { "abbr": "first ki", "actual": "1 Kings" }, - { "abbr": "2 Kings", "actual": "2 Kings" }, - { "abbr": "2 king", "actual": "2 Kings" }, - { "abbr": "2 kgs", "actual": "2 Kings" }, - { "abbr": "2 kn", "actual": "2 Kings" }, - { "abbr": "2 k", "actual": "2 Kings" }, - { "abbr": "2 ki", "actual": "2 Kings" }, - { "abbr": "ii kings", "actual": "2 Kings" }, - { "abbr": "ii king", "actual": "2 Kings" }, - { "abbr": "ii kgs", "actual": "2 Kings" }, - { "abbr": "ii kn", "actual": "2 Kings" }, - { "abbr": "ii k", "actual": "2 Kings" }, - { "abbr": "ii ki", "actual": "2 Kings" }, - { "abbr": "2nd kings", "actual": "2 Kings" }, - { "abbr": "2nd king", "actual": "2 Kings" }, - { "abbr": "2nd kgs", "actual": "2 Kings" }, - { "abbr": "2nd kn", "actual": "2 Kings" }, - { "abbr": "2nd k", "actual": "2 Kings" }, - { "abbr": "2nd ki", "actual": "2 Kings" }, - { "abbr": "second kings", "actual": "2 Kings" }, - { "abbr": "second king", "actual": "2 Kings" }, - { "abbr": "second kgs", "actual": "2 Kings" }, - { "abbr": "second kn", "actual": "2 Kings" }, - { "abbr": "second k", "actual": "2 Kings" }, - { "abbr": "second ki", "actual": "2 Kings" }, - { "abbr": "sec kings", "actual": "2 Kings" }, - { "abbr": "sec king", "actual": "2 Kings" }, - { "abbr": "sec kgs", "actual": "2 Kings" }, - { "abbr": "sec kn", "actual": "2 Kings" }, - { "abbr": "sec k", "actual": "2 Kings" }, - { "abbr": "sec ki", "actual": "2 Kings" }, - { "abbr": "2 Chronicles", "actual": "2 Chronicles" }, - { "abbr": "2 chronicles", "actual": "2 Chronicles" }, - { "abbr": "2 chron", "actual": "2 Chronicles" }, - { "abbr": "2 ch", "actual": "2 Chronicles" }, - { "abbr": "2 chr", "actual": "2 Chronicles" }, - { "abbr": "ii Chronicles", "actual": "2 Chronicles" }, - { "abbr": "ii chronicles", "actual": "2 Chronicles" }, - { "abbr": "ii chron", "actual": "2 Chronicles" }, - { "abbr": "ii ch", "actual": "2 Chronicles" }, - { "abbr": "ii chr", "actual": "2 Chronicles" }, - { "abbr": "2nd Chronicles", "actual": "2 Chronicles" }, - { "abbr": "2nd chronicles", "actual": "2 Chronicles" }, - { "abbr": "2nd chron", "actual": "2 Chronicles" }, - { "abbr": "2nd ch", "actual": "2 Chronicles" }, - { "abbr": "2nd chr", "actual": "2 Chronicles" }, - { "abbr": "second Chronicles", "actual": "2 Chronicles" }, - { "abbr": "second chronicles", "actual": "2 Chronicles" }, - { "abbr": "second chron", "actual": "2 Chronicles" }, - { "abbr": "second ch", "actual": "2 Chronicles" }, - { "abbr": "second chr", "actual": "2 Chronicles" }, - { "abbr": "sec Chronicles", "actual": "2 Chronicles" }, - { "abbr": "sec chronicles", "actual": "2 Chronicles" }, - { "abbr": "sec chron", "actual": "2 Chronicles" }, - { "abbr": "sec ch", "actual": "2 Chronicles" }, - { "abbr": "sec chr", "actual": "2 Chronicles" }, - { "abbr": "1 Chronicles", "actual": "1 Chronicles" }, - { "abbr": "1 chronicles", "actual": "1 Chronicles" }, - { "abbr": "1 chron", "actual": "1 Chronicles" }, - { "abbr": "1 ch", "actual": "1 Chronicles" }, - { "abbr": "1 chr", "actual": "1 Chronicles" }, - { "abbr": "i Chronicles", "actual": "1 Chronicles" }, - { "abbr": "i chronicles", "actual": "1 Chronicles" }, - { "abbr": "i chron", "actual": "1 Chronicles" }, - { "abbr": "i ch", "actual": "1 Chronicles" }, - { "abbr": "i chr", "actual": "1 Chronicles" }, - { "abbr": "1st Chronicles", "actual": "1 Chronicles" }, - { "abbr": "1st chronicles", "actual": "1 Chronicles" }, - { "abbr": "1st chron", "actual": "1 Chronicles" }, - { "abbr": "1st ch", "actual": "1 Chronicles" }, - { "abbr": "1st chr", "actual": "1 Chronicles" }, - { "abbr": "first Chronicles", "actual": "1 Chronicles" }, - { "abbr": "first chronicles", "actual": "1 Chronicles" }, - { "abbr": "first chron", "actual": "1 Chronicles" }, - { "abbr": "first ch", "actual": "1 Chronicles" }, - { "abbr": "first chr", "actual": "1 Chronicles" }, - { "abbr": "ezra", "actual": "Ezra" }, - { "abbr": "ezr", "actual": "Ezra" }, - { "abbr": "nehemiah", "actual": "Nehemiah" }, - { "abbr": "neh", "actual": "Nehemiah" }, - { "abbr": "ne", "actual": "Nehemiah" }, - { "abbr": "nehamiah", "actual": "Nehemiah" }, - { "abbr": "esther", "actual": "Esther" }, - { "abbr": "est", "actual": "Esther" }, - { "abbr": "es", "actual": "Esther" }, - { "abbr": "esth", "actual": "Esther" }, - { "abbr": "job", "actual": "Job" }, - { "abbr": "jo", "actual": "Job" }, - { "abbr": "jb", "actual": "Job" }, - { "abbr": "psalms", "actual": "Psalm" }, - { "abbr": "ps", "actual": "Psalm" }, - { "abbr": "psa", "actual": "Psalm" }, - { "abbr": "psalm", "actual": "Psalm" }, - { "abbr": "psm", "actual": "Psalm" }, - { "abbr": "proverbs", "actual": "Proverbs" }, - { "abbr": "prov", "actual": "Proverbs" }, - { "abbr": "pr", "actual": "Proverbs" }, - { "abbr": "pro", "actual": "Proverbs" }, - { "abbr": "proverb", "actual": "Proverbs" }, - { "abbr": "prv", "actual": "Proverbs" }, - { "abbr": "prvbs", "actual": "Proverbs" }, - { "abbr": "ecclesiastes", "actual": "Ecclesiastes" }, - { "abbr": "eccl", "actual": "Ecclesiastes" }, - { "abbr": "ecc", "actual": "Ecclesiastes" }, - { "abbr": "eccles", "actual": "Ecclesiastes" }, - { "abbr": "ec", "actual": "Ecclesiastes" }, - { "abbr": "ecl", "actual": "Ecclesiastes" }, - { "abbr": "ecclesiaste", "actual": "Ecclesiastes" }, - { "abbr": "song of solomon", "actual": "Song of Solomon" }, - { "abbr": "song of songs", "actual": "Song of Solomon" }, - { "abbr": "sos", "actual": "Song of Solomon" }, - { "abbr": "ss", "actual": "Song of Solomon" }, - { "abbr": "son", "actual": "Song of Solomon" }, - { "abbr": "so", "actual": "Song of Solomon" }, - { "abbr": "song", "actual": "Song of Solomon" }, - { "abbr": "songs", "actual": "Song of Solomon" }, - { "abbr": "isaiah", "actual": "Isaiah" }, - { "abbr": "is", "actual": "Isaiah" }, - { "abbr": "isah", "actual": "Isaiah" }, - { "abbr": "isai", "actual": "Isaiah" }, - { "abbr": "ia", "actual": "Isaiah" }, - { "abbr": "jerimiah", "actual": "Jeremiah" }, - { "abbr": "jeremiah", "actual": "Jeremiah" }, - { "abbr": "jer", "actual": "Jeremiah" }, - { "abbr": "je", "actual": "Jeremiah" }, - { "abbr": "jere", "actual": "Jeremiah" }, - { "abbr": "lamentations", "actual": "Lamentations" }, - { "abbr": "lam", "actual": "Lamentations" }, - { "abbr": "la", "actual": "Lamentations" }, - { "abbr": "lamentation", "actual": "Lamentations" }, - ]; - - for (let bk of booknames) { - it('Should parse the references: ' + bk.abbr, () => { - let book = Reference.parseBook(bk.abbr); - expect(book.bookname).toBe(bk.actual); - for (let i = 1; i <= book.lastchapter; i++) - expect(new Reference(bk.abbr + ' ' + i).toString()).toBe(bk.actual + ' ' + i + ":1 - *"); - - for (let i = 1; i < book.lastchapter; i++) - expect(new Reference(bk.abbr + ' ' + i+'-'+(i+1)).toString()).toBe(bk.actual + ' ' + i + ":1 - "+(i+1)+":*"); - - expect(new Reference(bk.abbr + ' 1:4-2:5').toString()).toBe(bk.actual + ' 1:4 - 2:5'); - expect(new Reference(bk.abbr + ' 1:1 - 5').toString()).toBe(bk.actual + ' 1:1 - 5'); - expect(new Reference(bk.abbr + ' 1:4 - 5').toString()).toBe(bk.actual + ' 1:4 - 5'); - }); - } - let refs = [ - { "src": "2 sam 3:4-6:8", "actual": "2 Samuel 3:4 - 6:8" }, - //{ "src": "gen 50 - ex 2", "actual": "Genesis 50:1 - Exodus 2:*" }, - ]; - - for (let ref of refs) { - it('Should parse the reference: ' + ref.src, () => { - expect(new Reference(ref.src).toString()).toBe(ref.actual); - }); - } - -}); \ No newline at end of file +import { Reference } from './Reference'; + +describe('Reference', () => { + + it('Should parse the reference: Gen 1:1', () => { + let ref = new Reference("Gen 1:1").toString(); + expect(ref).toBe('Genesis 1:1'); + }); + + it('Should parse the reference: Gen 1:1-11', () => { + let ref = new Reference("Gen 1:1-11").toString(); + expect(ref).toBe('Genesis 1:1 - 11'); + }); + + it('Should parse the reference: Gen 1-2', () => { + let ref = new Reference("Gen 1-2").toString(); + expect(ref).toBe('Genesis 1:1 - 2:*'); + }); + + it('Should parse the reference: John 3:16', () => { + let ref = new Reference("John 3:16").toString(); + expect(ref).toBe('John 3:16'); + }); + + it('Should parse the reference: John 3-6', () => { + let ref = new Reference("Jn 3-6").toString(); + expect(ref).toBe('John 3:1 - 6:*'); + }); + + it('Should parse the reference: 1 Corinthians 3:5-6:5', () => { + let ref = new Reference("1 Corinthians 3:5-6:5").toString(); + expect(ref).toBe('1 Corinthians 3:5 - 6:5'); + }); + + it('Should parse the reference: 2 Samuel 5:5-6:5', () => { + expect(new Reference("II sam 5:5-6:5").toString()).toBe('2 Samuel 5:5 - 6:5'); + }); + + let booknames = [ + { "abbr": "gen", "actual": "Genesis" }, + { "abbr": "ge", "actual": "Genesis" }, + { "abbr": "genesis", "actual": "Genesis" }, + { "abbr": "gn", "actual": "Genesis" }, + { "abbr": "exodus", "actual": "Exodus" }, + { "abbr": "ex", "actual": "Exodus" }, + { "abbr": "exo", "actual": "Exodus" }, + { "abbr": "exod", "actual": "Exodus" }, + { "abbr": "exd", "actual": "Exodus" }, + { "abbr": "leviticus", "actual": "Leviticus" }, + { "abbr": "lev", "actual": "Leviticus" }, + { "abbr": "le", "actual": "Leviticus" }, + { "abbr": "levi", "actual": "Leviticus" }, + { "abbr": "lv", "actual": "Leviticus" }, + { "abbr": "numbers", "actual": "Numbers" }, + { "abbr": "num", "actual": "Numbers" }, + { "abbr": "nu", "actual": "Numbers" }, + { "abbr": "numb", "actual": "Numbers" }, + { "abbr": "number", "actual": "Numbers" }, + { "abbr": "deuteronomy", "actual": "Deuteronomy" }, + { "abbr": "deut", "actual": "Deuteronomy" }, + { "abbr": "de", "actual": "Deuteronomy" }, + { "abbr": "dt", "actual": "Deuteronomy" }, + { "abbr": "deu", "actual": "Deuteronomy" }, + { "abbr": "joshua", "actual": "Joshua" }, + { "abbr": "josh", "actual": "Joshua" }, + { "abbr": "jos", "actual": "Joshua" }, + { "abbr": "judges", "actual": "Judges" }, + { "abbr": "jud", "actual": "Judges" }, + { "abbr": "jdg", "actual": "Judges" }, + { "abbr": "judg", "actual": "Judges" }, + { "abbr": "ruth", "actual": "Ruth" }, + { "abbr": "ru", "actual": "Ruth" }, + { "abbr": "1 samuel", "actual": "1 Samuel" }, + { "abbr": "1 sa", "actual": "1 Samuel" }, + { "abbr": "1 sam", "actual": "1 Samuel" }, + { "abbr": "1 sml", "actual": "1 Samuel" }, + { "abbr": "i samuel", "actual": "1 Samuel" }, + { "abbr": "i sa", "actual": "1 Samuel" }, + { "abbr": "i sam", "actual": "1 Samuel" }, + { "abbr": "i sml", "actual": "1 Samuel" }, + { "abbr": "1st samuel", "actual": "1 Samuel" }, + { "abbr": "1st sa", "actual": "1 Samuel" }, + { "abbr": "1st sam", "actual": "1 Samuel" }, + { "abbr": "1st sml", "actual": "1 Samuel" }, + { "abbr": "first samuel", "actual": "1 Samuel" }, + { "abbr": "first sa", "actual": "1 Samuel" }, + { "abbr": "first sam", "actual": "1 Samuel" }, + { "abbr": "first sml", "actual": "1 Samuel" }, + { "abbr": "2 samuel", "actual": "2 Samuel" }, + { "abbr": "2 sa", "actual": "2 Samuel" }, + { "abbr": "2 sam", "actual": "2 Samuel" }, + { "abbr": "2 sml", "actual": "2 Samuel" }, + { "abbr": "ii samuel", "actual": "2 Samuel" }, + { "abbr": "ii sa", "actual": "2 Samuel" }, + { "abbr": "ii sam", "actual": "2 Samuel" }, + { "abbr": "ii sml", "actual": "2 Samuel" }, + { "abbr": "2nd samuel", "actual": "2 Samuel" }, + { "abbr": "2nd sa", "actual": "2 Samuel" }, + { "abbr": "2nd sam", "actual": "2 Samuel" }, + { "abbr": "2nd sml", "actual": "2 Samuel" }, + { "abbr": "second samuel", "actual": "2 Samuel" }, + { "abbr": "second sa", "actual": "2 Samuel" }, + { "abbr": "second sam", "actual": "2 Samuel" }, + { "abbr": "second sml", "actual": "2 Samuel" }, + { "abbr": "sec samuel", "actual": "2 Samuel" }, + { "abbr": "sec sa", "actual": "2 Samuel" }, + { "abbr": "sec sam", "actual": "2 Samuel" }, + { "abbr": "sec sml", "actual": "2 Samuel" }, + { "abbr": "1 kings", "actual": "1 Kings" }, + { "abbr": "1 king", "actual": "1 Kings" }, + { "abbr": "1 kgs", "actual": "1 Kings" }, + { "abbr": "1 kn", "actual": "1 Kings" }, + { "abbr": "1 k", "actual": "1 Kings" }, + { "abbr": "1 ki", "actual": "1 Kings" }, + { "abbr": "i kings", "actual": "1 Kings" }, + { "abbr": "i king", "actual": "1 Kings" }, + { "abbr": "i kgs", "actual": "1 Kings" }, + { "abbr": "i kn", "actual": "1 Kings" }, + { "abbr": "i k", "actual": "1 Kings" }, + { "abbr": "i ki", "actual": "1 Kings" }, + { "abbr": "1st kings", "actual": "1 Kings" }, + { "abbr": "1st king", "actual": "1 Kings" }, + { "abbr": "1st kgs", "actual": "1 Kings" }, + { "abbr": "1st kn", "actual": "1 Kings" }, + { "abbr": "1st k", "actual": "1 Kings" }, + { "abbr": "1st ki", "actual": "1 Kings" }, + { "abbr": "first kings", "actual": "1 Kings" }, + { "abbr": "first king", "actual": "1 Kings" }, + { "abbr": "first kgs", "actual": "1 Kings" }, + { "abbr": "first kn", "actual": "1 Kings" }, + { "abbr": "first k", "actual": "1 Kings" }, + { "abbr": "first ki", "actual": "1 Kings" }, + { "abbr": "2 Kings", "actual": "2 Kings" }, + { "abbr": "2 king", "actual": "2 Kings" }, + { "abbr": "2 kgs", "actual": "2 Kings" }, + { "abbr": "2 kn", "actual": "2 Kings" }, + { "abbr": "2 k", "actual": "2 Kings" }, + { "abbr": "2 ki", "actual": "2 Kings" }, + { "abbr": "ii kings", "actual": "2 Kings" }, + { "abbr": "ii king", "actual": "2 Kings" }, + { "abbr": "ii kgs", "actual": "2 Kings" }, + { "abbr": "ii kn", "actual": "2 Kings" }, + { "abbr": "ii k", "actual": "2 Kings" }, + { "abbr": "ii ki", "actual": "2 Kings" }, + { "abbr": "2nd kings", "actual": "2 Kings" }, + { "abbr": "2nd king", "actual": "2 Kings" }, + { "abbr": "2nd kgs", "actual": "2 Kings" }, + { "abbr": "2nd kn", "actual": "2 Kings" }, + { "abbr": "2nd k", "actual": "2 Kings" }, + { "abbr": "2nd ki", "actual": "2 Kings" }, + { "abbr": "second kings", "actual": "2 Kings" }, + { "abbr": "second king", "actual": "2 Kings" }, + { "abbr": "second kgs", "actual": "2 Kings" }, + { "abbr": "second kn", "actual": "2 Kings" }, + { "abbr": "second k", "actual": "2 Kings" }, + { "abbr": "second ki", "actual": "2 Kings" }, + { "abbr": "sec kings", "actual": "2 Kings" }, + { "abbr": "sec king", "actual": "2 Kings" }, + { "abbr": "sec kgs", "actual": "2 Kings" }, + { "abbr": "sec kn", "actual": "2 Kings" }, + { "abbr": "sec k", "actual": "2 Kings" }, + { "abbr": "sec ki", "actual": "2 Kings" }, + { "abbr": "2 Chronicles", "actual": "2 Chronicles" }, + { "abbr": "2 chronicles", "actual": "2 Chronicles" }, + { "abbr": "2 chron", "actual": "2 Chronicles" }, + { "abbr": "2 ch", "actual": "2 Chronicles" }, + { "abbr": "2 chr", "actual": "2 Chronicles" }, + { "abbr": "ii Chronicles", "actual": "2 Chronicles" }, + { "abbr": "ii chronicles", "actual": "2 Chronicles" }, + { "abbr": "ii chron", "actual": "2 Chronicles" }, + { "abbr": "ii ch", "actual": "2 Chronicles" }, + { "abbr": "ii chr", "actual": "2 Chronicles" }, + { "abbr": "2nd Chronicles", "actual": "2 Chronicles" }, + { "abbr": "2nd chronicles", "actual": "2 Chronicles" }, + { "abbr": "2nd chron", "actual": "2 Chronicles" }, + { "abbr": "2nd ch", "actual": "2 Chronicles" }, + { "abbr": "2nd chr", "actual": "2 Chronicles" }, + { "abbr": "second Chronicles", "actual": "2 Chronicles" }, + { "abbr": "second chronicles", "actual": "2 Chronicles" }, + { "abbr": "second chron", "actual": "2 Chronicles" }, + { "abbr": "second ch", "actual": "2 Chronicles" }, + { "abbr": "second chr", "actual": "2 Chronicles" }, + { "abbr": "sec Chronicles", "actual": "2 Chronicles" }, + { "abbr": "sec chronicles", "actual": "2 Chronicles" }, + { "abbr": "sec chron", "actual": "2 Chronicles" }, + { "abbr": "sec ch", "actual": "2 Chronicles" }, + { "abbr": "sec chr", "actual": "2 Chronicles" }, + { "abbr": "1 Chronicles", "actual": "1 Chronicles" }, + { "abbr": "1 chronicles", "actual": "1 Chronicles" }, + { "abbr": "1 chron", "actual": "1 Chronicles" }, + { "abbr": "1 ch", "actual": "1 Chronicles" }, + { "abbr": "1 chr", "actual": "1 Chronicles" }, + { "abbr": "i Chronicles", "actual": "1 Chronicles" }, + { "abbr": "i chronicles", "actual": "1 Chronicles" }, + { "abbr": "i chron", "actual": "1 Chronicles" }, + { "abbr": "i ch", "actual": "1 Chronicles" }, + { "abbr": "i chr", "actual": "1 Chronicles" }, + { "abbr": "1st Chronicles", "actual": "1 Chronicles" }, + { "abbr": "1st chronicles", "actual": "1 Chronicles" }, + { "abbr": "1st chron", "actual": "1 Chronicles" }, + { "abbr": "1st ch", "actual": "1 Chronicles" }, + { "abbr": "1st chr", "actual": "1 Chronicles" }, + { "abbr": "first Chronicles", "actual": "1 Chronicles" }, + { "abbr": "first chronicles", "actual": "1 Chronicles" }, + { "abbr": "first chron", "actual": "1 Chronicles" }, + { "abbr": "first ch", "actual": "1 Chronicles" }, + { "abbr": "first chr", "actual": "1 Chronicles" }, + { "abbr": "ezra", "actual": "Ezra" }, + { "abbr": "ezr", "actual": "Ezra" }, + { "abbr": "nehemiah", "actual": "Nehemiah" }, + { "abbr": "neh", "actual": "Nehemiah" }, + { "abbr": "ne", "actual": "Nehemiah" }, + { "abbr": "nehamiah", "actual": "Nehemiah" }, + { "abbr": "esther", "actual": "Esther" }, + { "abbr": "est", "actual": "Esther" }, + { "abbr": "es", "actual": "Esther" }, + { "abbr": "esth", "actual": "Esther" }, + { "abbr": "job", "actual": "Job" }, + { "abbr": "jo", "actual": "Job" }, + { "abbr": "jb", "actual": "Job" }, + { "abbr": "psalms", "actual": "Psalm" }, + { "abbr": "ps", "actual": "Psalm" }, + { "abbr": "psa", "actual": "Psalm" }, + { "abbr": "psalm", "actual": "Psalm" }, + { "abbr": "psm", "actual": "Psalm" }, + { "abbr": "proverbs", "actual": "Proverbs" }, + { "abbr": "prov", "actual": "Proverbs" }, + { "abbr": "pr", "actual": "Proverbs" }, + { "abbr": "pro", "actual": "Proverbs" }, + { "abbr": "proverb", "actual": "Proverbs" }, + { "abbr": "prv", "actual": "Proverbs" }, + { "abbr": "prvbs", "actual": "Proverbs" }, + { "abbr": "ecclesiastes", "actual": "Ecclesiastes" }, + { "abbr": "eccl", "actual": "Ecclesiastes" }, + { "abbr": "ecc", "actual": "Ecclesiastes" }, + { "abbr": "eccles", "actual": "Ecclesiastes" }, + { "abbr": "ec", "actual": "Ecclesiastes" }, + { "abbr": "ecl", "actual": "Ecclesiastes" }, + { "abbr": "ecclesiaste", "actual": "Ecclesiastes" }, + { "abbr": "song of solomon", "actual": "Song of Solomon" }, + { "abbr": "song of songs", "actual": "Song of Solomon" }, + { "abbr": "sos", "actual": "Song of Solomon" }, + { "abbr": "ss", "actual": "Song of Solomon" }, + { "abbr": "son", "actual": "Song of Solomon" }, + { "abbr": "so", "actual": "Song of Solomon" }, + { "abbr": "song", "actual": "Song of Solomon" }, + { "abbr": "songs", "actual": "Song of Solomon" }, + { "abbr": "isaiah", "actual": "Isaiah" }, + { "abbr": "is", "actual": "Isaiah" }, + { "abbr": "isah", "actual": "Isaiah" }, + { "abbr": "isai", "actual": "Isaiah" }, + { "abbr": "ia", "actual": "Isaiah" }, + { "abbr": "jerimiah", "actual": "Jeremiah" }, + { "abbr": "jeremiah", "actual": "Jeremiah" }, + { "abbr": "jer", "actual": "Jeremiah" }, + { "abbr": "je", "actual": "Jeremiah" }, + { "abbr": "jere", "actual": "Jeremiah" }, + { "abbr": "lamentations", "actual": "Lamentations" }, + { "abbr": "lam", "actual": "Lamentations" }, + { "abbr": "la", "actual": "Lamentations" }, + { "abbr": "lamentation", "actual": "Lamentations" }, + ]; + + for (let bk of booknames) { + it('Should parse the references: ' + bk.abbr, () => { + let book = Reference.parseBook(bk.abbr); + expect(book.bookname).toBe(bk.actual); + for (let i = 1; i <= book.lastchapter; i++) + expect(new Reference(bk.abbr + ' ' + i).toString()).toBe(bk.actual + ' ' + i + ":1 - *"); + + for (let i = 1; i < book.lastchapter; i++) { + expect(new Reference(bk.abbr + ' ' + i + '-' + (i + 1)).toString()).toBe(bk.actual + ' ' + i + ":1 - " + (i + 1) + ":*"); + expect(new Reference(bk.abbr + ' ' + i + ':3-' + (i + 1)+":6").toString()).toBe(bk.actual + ' ' + i + ":3 - " + (i + 1) + ":6"); + } + + expect(new Reference(bk.abbr + ' 1:4-2:5').toString()).toBe(bk.actual + ' 1:4 - 2:5'); + expect(new Reference(bk.abbr + ' 1:1 - 5').toString()).toBe(bk.actual + ' 1:1 - 5'); + expect(new Reference(bk.abbr + ' 1:4 - 5').toString()).toBe(bk.actual + ' 1:4 - 5'); + }); + } + let refs = [ + { "src": "2 sam 3:4-6:8", "actual": "2 Samuel 3:4 - 6:8" }, + //{ "src": "gen 50 - ex 2", "actual": "Genesis 50:1 - Exodus 2:*" }, + ]; + + for (let ref of refs) { + it('Should parse the reference: ' + ref.src, () => { + expect(new Reference(ref.src).toString()).toBe(ref.actual); + }); + } + +}); diff --git a/DynamicBibleIonic/src/app/app.component.ts b/DynamicBibleIonic/src/app/app.component.ts index e347c36b..16c8cb9f 100644 --- a/DynamicBibleIonic/src/app/app.component.ts +++ b/DynamicBibleIonic/src/app/app.component.ts @@ -2,12 +2,12 @@ import { Component, ViewChild } from '@angular/core'; import { Platform, MenuController, Nav } from 'ionic-angular'; import { StatusBar, Splashscreen } from 'ionic-native'; import {SearchPage} from "../pages/search/search"; -import {SettingsPage} from "../pages/settings/settings"; +import {SettingsPage} from "../pages/settings/settings"; @Component({ templateUrl: 'app.html' }) -export class MyApp +export class MyApp { @ViewChild(Nav) nav: Nav; @@ -17,7 +17,7 @@ export class MyApp constructor( public platform: Platform, public menu: MenuController - ) + ) { this.initializeApp(); @@ -28,9 +28,9 @@ export class MyApp ]; } - initializeApp() + initializeApp() { - this.platform.ready().then(() => + this.platform.ready().then(() => { // Okay, so the platform is ready and our plugins are available. // Here you can do any higher level native things you might need. @@ -39,11 +39,11 @@ export class MyApp }); } - openPage(page) + openPage(page) { // close the menu when clicking a link from the menu - this.menu.close(); + this.menu.close(); // navigate to the new page if it is not the current page this.nav.setRoot(page.component); } -} \ No newline at end of file +} diff --git a/DynamicBibleIonic/src/app/app.module.ts b/DynamicBibleIonic/src/app/app.module.ts index babb45de..ee637391 100644 --- a/DynamicBibleIonic/src/app/app.module.ts +++ b/DynamicBibleIonic/src/app/app.module.ts @@ -1,48 +1,48 @@ -import { NgModule, ErrorHandler } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; - -import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular'; -import { Storage } from '@ionic/storage'; - -import { MyApp } from './app.component'; - -import {SearchPage} from "../pages/search/search"; -import {SettingsPage} from "../pages/settings/settings"; - -import {ComponentLoader} from "../components/component-loader/component-loader.ts"; -import {Passage} from "../components/passage/passage.ts"; -import {Strongs} from "../components/strongs/strongs.ts"; -import {Words} from "../components/words/words.ts"; -import {Error} from "../components/error/error.ts"; -import {StrongsModal} from "../components/strongs-modal/strongs-modal.ts"; - -@NgModule({ - declarations: [ - MyApp, - SearchPage, - SettingsPage, - ComponentLoader, - Passage, - Strongs, - StrongsModal, - Words, - Error - ], - imports: [ - IonicModule.forRoot(MyApp), - BrowserModule, - ], - bootstrap: [IonicApp], - entryComponents: [ - MyApp, - SearchPage, - SettingsPage, - Passage, - Strongs, - StrongsModal, - Words, - Error - ], - providers: [{ provide: ErrorHandler, useClass: IonicErrorHandler }, Storage] -}) -export class AppModule { } \ No newline at end of file +import { NgModule, ErrorHandler } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; + +import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular'; +import { Storage } from '@ionic/storage'; + +import { MyApp } from './app.component'; + +import {SearchPage} from "../pages/search/search"; +import {SettingsPage} from "../pages/settings/settings"; + +import {ComponentLoader} from "../components/component-loader/component-loader"; +import {Passage} from "../components/passage/passage"; +import {Strongs} from "../components/strongs/strongs"; +import {Words} from "../components/words/words"; +import {Error} from "../components/error/error"; +import {StrongsModal} from "../components/strongs-modal/strongs-modal"; + +@NgModule({ + declarations: [ + MyApp, + SearchPage, + SettingsPage, + ComponentLoader, + Passage, + Strongs, + StrongsModal, + Words, + Error + ], + imports: [ + IonicModule.forRoot(MyApp), + BrowserModule, + ], + bootstrap: [IonicApp], + entryComponents: [ + MyApp, + SearchPage, + SettingsPage, + Passage, + Strongs, + StrongsModal, + Words, + Error + ], + providers: [{ provide: ErrorHandler, useClass: IonicErrorHandler }, Storage] +}) +export class AppModule { } diff --git a/DynamicBibleIonic/src/bible-service.spec.ts b/DynamicBibleIonic/src/bible-service.spec.ts index 113fee7d..ce3c92a3 100644 --- a/DynamicBibleIonic/src/bible-service.spec.ts +++ b/DynamicBibleIonic/src/bible-service.spec.ts @@ -1,69 +1,312 @@ -import { getTestBed, TestBed, inject } from '@angular/core/testing'; -import { XHRBackend, BaseRequestOptions, HttpModule, Http, } from '@angular/http'; -import { MockBackend } from '@angular/http/testing'; -import { BibleService } from './bible-service'; -import { Reference } from './Reference'; - -describe('Bible Service', () => { - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [HttpModule], - providers: [ - BibleService, - { - provide: Http, - useFactory: function (backend, defaultOptions) { - return new Http(backend, defaultOptions); - }, - deps: [MockBackend, BaseRequestOptions] - }, - MockBackend, - BaseRequestOptions - ] - }); - }); - - it('Should get the verse: Gen 1:1', () => { - let svc: BibleService = getTestBed().get(BibleService); - let ref = new Reference("Gen 1:1").Section; - var r = svc.getResult(ref); - - expect(r.msg).toBe(':)'); - expect(r.ref).toBe('Genesis 1:1'); - expect(r.status).toBe(0); - expect(r.testament).toBe("old"); - - expect(r.cs.length).toBe(1); - expect(r.cs[0].vss.length).toBe(1); - expect(r.cs[0].vss[0].w.length).toBe(9); - expect(r.cs[0].vss[0].w[0].t).toBe("In the"); - }); - - it('Should get the passage: Gen 1:1-9', () => { - let svc: BibleService = getTestBed().get(BibleService); - let ref = new Reference("Gen 1:1-9").Section; - var r = svc.getResult(ref); - - expect(r.msg).toBe(':)'); - expect(r.ref).toBe('Genesis 1:1 - 9'); - expect(r.status).toBe(0); - expect(r.testament).toBe("old"); - - expect(r.cs.length).toBe(1); - expect(r.cs[0].vss.length).toBe(9); - expect(r.cs[0].vss[0].w.length).toBe(9); - expect(r.cs[0].vss[0].w[0].t).toBe("In the"); - }); - - it('Should return an error status', () => { - let svc: BibleService = getTestBed().get(BibleService); - let ref = new Reference("Gen 100:1").Section; - var r = svc.getResult(ref); - - expect(r.msg).toBe('Unable to retrieve bible passage Genesis 100:1.'); - expect(r.ref).toBe("Genesis 100:1"); - expect(r.status).toBe(-1); - expect(r.testament).toBe(''); - - }); -}); \ No newline at end of file +import { getTestBed, TestBed, inject } from '@angular/core/testing'; +import { XHRBackend, BaseRequestOptions, HttpModule, Http, } from '@angular/http'; +import { MockBackend } from '@angular/http/testing'; +import { BibleService } from './bible-service'; +import { Reference } from './Reference'; + +describe('Bible Service', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpModule], + providers: [ + BibleService, + { + provide: Http, + useFactory: function (backend, defaultOptions) { + return new Http(backend, defaultOptions); + }, + deps: [MockBackend, BaseRequestOptions] + }, + MockBackend, + BaseRequestOptions + ] + }); + }); + + it('Should get the verse: Gen 1:1', () => { + let svc: BibleService = getTestBed().get(BibleService); + let ref = new Reference("Gen 1:1").Section; + var r = svc.getResult(ref); + + expect(r.msg).toBe(':)'); + expect(r.ref).toBe('Genesis 1:1'); + expect(r.status).toBe(0); + expect(r.testament).toBe("old"); + + expect(r.cs.length).toBe(1); + expect(r.cs[0].vss.length).toBe(1); + expect(r.cs[0].vss[0].w.length).toBe(9); + expect(r.cs[0].vss[0].w[0].t).toBe("In the"); + }); + + it('Should get the passage: Gen 1:1-9', () => { + let svc: BibleService = getTestBed().get(BibleService); + let ref = new Reference("Gen 1:1-9").Section; + var r = svc.getResult(ref); + + expect(r.msg).toBe(':)'); + expect(r.ref).toBe('Genesis 1:1 - 9'); + expect(r.status).toBe(0); + expect(r.testament).toBe("old"); + + expect(r.cs.length).toBe(1); + expect(r.cs[0].vss.length).toBe(9); + expect(r.cs[0].vss[0].w.length).toBe(9); + expect(r.cs[0].vss[0].w[0].t).toBe("In the"); + }); + + it('Should return an error status', () => { + let svc: BibleService = getTestBed().get(BibleService); + let ref = new Reference("Gen 100:1").Section; + var r = svc.getResult(ref); + + expect(r.msg).toBe('Unable to retrieve bible passage Genesis 100:1.'); + expect(r.ref).toBe("Genesis 100:1"); + expect(r.status).toBe(-1); + expect(r.testament).toBe(''); + + }); + + + let booknames = [ + { "abbr": "gen", "actual": "Genesis" }, + { "abbr": "ge", "actual": "Genesis" }, + { "abbr": "genesis", "actual": "Genesis" }, + { "abbr": "gn", "actual": "Genesis" }, + { "abbr": "exodus", "actual": "Exodus" }, + { "abbr": "ex", "actual": "Exodus" }, + { "abbr": "exo", "actual": "Exodus" }, + { "abbr": "exod", "actual": "Exodus" }, + { "abbr": "exd", "actual": "Exodus" }, + { "abbr": "leviticus", "actual": "Leviticus" }, + { "abbr": "lev", "actual": "Leviticus" }, + { "abbr": "le", "actual": "Leviticus" }, + { "abbr": "levi", "actual": "Leviticus" }, + { "abbr": "lv", "actual": "Leviticus" }, + { "abbr": "numbers", "actual": "Numbers" }, + { "abbr": "num", "actual": "Numbers" }, + { "abbr": "nu", "actual": "Numbers" }, + { "abbr": "numb", "actual": "Numbers" }, + { "abbr": "number", "actual": "Numbers" }, + { "abbr": "deuteronomy", "actual": "Deuteronomy" }, + { "abbr": "deut", "actual": "Deuteronomy" }, + { "abbr": "de", "actual": "Deuteronomy" }, + { "abbr": "dt", "actual": "Deuteronomy" }, + { "abbr": "deu", "actual": "Deuteronomy" }, + { "abbr": "joshua", "actual": "Joshua" }, + { "abbr": "josh", "actual": "Joshua" }, + { "abbr": "jos", "actual": "Joshua" }, + { "abbr": "judges", "actual": "Judges" }, + { "abbr": "jud", "actual": "Judges" }, + { "abbr": "jdg", "actual": "Judges" }, + { "abbr": "judg", "actual": "Judges" }, + { "abbr": "ruth", "actual": "Ruth" }, + { "abbr": "ru", "actual": "Ruth" }, + { "abbr": "1 samuel", "actual": "1 Samuel" }, + { "abbr": "1 sa", "actual": "1 Samuel" }, + { "abbr": "1 sam", "actual": "1 Samuel" }, + { "abbr": "1 sml", "actual": "1 Samuel" }, + { "abbr": "i samuel", "actual": "1 Samuel" }, + { "abbr": "i sa", "actual": "1 Samuel" }, + { "abbr": "i sam", "actual": "1 Samuel" }, + { "abbr": "i sml", "actual": "1 Samuel" }, + { "abbr": "1st samuel", "actual": "1 Samuel" }, + { "abbr": "1st sa", "actual": "1 Samuel" }, + { "abbr": "1st sam", "actual": "1 Samuel" }, + { "abbr": "1st sml", "actual": "1 Samuel" }, + { "abbr": "first samuel", "actual": "1 Samuel" }, + { "abbr": "first sa", "actual": "1 Samuel" }, + { "abbr": "first sam", "actual": "1 Samuel" }, + { "abbr": "first sml", "actual": "1 Samuel" }, + { "abbr": "2 samuel", "actual": "2 Samuel" }, + { "abbr": "2 sa", "actual": "2 Samuel" }, + { "abbr": "2 sam", "actual": "2 Samuel" }, + { "abbr": "2 sml", "actual": "2 Samuel" }, + { "abbr": "ii samuel", "actual": "2 Samuel" }, + { "abbr": "ii sa", "actual": "2 Samuel" }, + { "abbr": "ii sam", "actual": "2 Samuel" }, + { "abbr": "ii sml", "actual": "2 Samuel" }, + { "abbr": "2nd samuel", "actual": "2 Samuel" }, + { "abbr": "2nd sa", "actual": "2 Samuel" }, + { "abbr": "2nd sam", "actual": "2 Samuel" }, + { "abbr": "2nd sml", "actual": "2 Samuel" }, + { "abbr": "second samuel", "actual": "2 Samuel" }, + { "abbr": "second sa", "actual": "2 Samuel" }, + { "abbr": "second sam", "actual": "2 Samuel" }, + { "abbr": "second sml", "actual": "2 Samuel" }, + { "abbr": "sec samuel", "actual": "2 Samuel" }, + { "abbr": "sec sa", "actual": "2 Samuel" }, + { "abbr": "sec sam", "actual": "2 Samuel" }, + { "abbr": "sec sml", "actual": "2 Samuel" }, + { "abbr": "1 kings", "actual": "1 Kings" }, + { "abbr": "1 king", "actual": "1 Kings" }, + { "abbr": "1 kgs", "actual": "1 Kings" }, + { "abbr": "1 kn", "actual": "1 Kings" }, + { "abbr": "1 k", "actual": "1 Kings" }, + { "abbr": "1 ki", "actual": "1 Kings" }, + { "abbr": "i kings", "actual": "1 Kings" }, + { "abbr": "i king", "actual": "1 Kings" }, + { "abbr": "i kgs", "actual": "1 Kings" }, + { "abbr": "i kn", "actual": "1 Kings" }, + { "abbr": "i k", "actual": "1 Kings" }, + { "abbr": "i ki", "actual": "1 Kings" }, + { "abbr": "1st kings", "actual": "1 Kings" }, + { "abbr": "1st king", "actual": "1 Kings" }, + { "abbr": "1st kgs", "actual": "1 Kings" }, + { "abbr": "1st kn", "actual": "1 Kings" }, + { "abbr": "1st k", "actual": "1 Kings" }, + { "abbr": "1st ki", "actual": "1 Kings" }, + { "abbr": "first kings", "actual": "1 Kings" }, + { "abbr": "first king", "actual": "1 Kings" }, + { "abbr": "first kgs", "actual": "1 Kings" }, + { "abbr": "first kn", "actual": "1 Kings" }, + { "abbr": "first k", "actual": "1 Kings" }, + { "abbr": "first ki", "actual": "1 Kings" }, + { "abbr": "2 Kings", "actual": "2 Kings" }, + { "abbr": "2 king", "actual": "2 Kings" }, + { "abbr": "2 kgs", "actual": "2 Kings" }, + { "abbr": "2 kn", "actual": "2 Kings" }, + { "abbr": "2 k", "actual": "2 Kings" }, + { "abbr": "2 ki", "actual": "2 Kings" }, + { "abbr": "ii kings", "actual": "2 Kings" }, + { "abbr": "ii king", "actual": "2 Kings" }, + { "abbr": "ii kgs", "actual": "2 Kings" }, + { "abbr": "ii kn", "actual": "2 Kings" }, + { "abbr": "ii k", "actual": "2 Kings" }, + { "abbr": "ii ki", "actual": "2 Kings" }, + { "abbr": "2nd kings", "actual": "2 Kings" }, + { "abbr": "2nd king", "actual": "2 Kings" }, + { "abbr": "2nd kgs", "actual": "2 Kings" }, + { "abbr": "2nd kn", "actual": "2 Kings" }, + { "abbr": "2nd k", "actual": "2 Kings" }, + { "abbr": "2nd ki", "actual": "2 Kings" }, + { "abbr": "second kings", "actual": "2 Kings" }, + { "abbr": "second king", "actual": "2 Kings" }, + { "abbr": "second kgs", "actual": "2 Kings" }, + { "abbr": "second kn", "actual": "2 Kings" }, + { "abbr": "second k", "actual": "2 Kings" }, + { "abbr": "second ki", "actual": "2 Kings" }, + { "abbr": "sec kings", "actual": "2 Kings" }, + { "abbr": "sec king", "actual": "2 Kings" }, + { "abbr": "sec kgs", "actual": "2 Kings" }, + { "abbr": "sec kn", "actual": "2 Kings" }, + { "abbr": "sec k", "actual": "2 Kings" }, + { "abbr": "sec ki", "actual": "2 Kings" }, + { "abbr": "2 Chronicles", "actual": "2 Chronicles" }, + { "abbr": "2 chronicles", "actual": "2 Chronicles" }, + { "abbr": "2 chron", "actual": "2 Chronicles" }, + { "abbr": "2 ch", "actual": "2 Chronicles" }, + { "abbr": "2 chr", "actual": "2 Chronicles" }, + { "abbr": "ii Chronicles", "actual": "2 Chronicles" }, + { "abbr": "ii chronicles", "actual": "2 Chronicles" }, + { "abbr": "ii chron", "actual": "2 Chronicles" }, + { "abbr": "ii ch", "actual": "2 Chronicles" }, + { "abbr": "ii chr", "actual": "2 Chronicles" }, + { "abbr": "2nd Chronicles", "actual": "2 Chronicles" }, + { "abbr": "2nd chronicles", "actual": "2 Chronicles" }, + { "abbr": "2nd chron", "actual": "2 Chronicles" }, + { "abbr": "2nd ch", "actual": "2 Chronicles" }, + { "abbr": "2nd chr", "actual": "2 Chronicles" }, + { "abbr": "second Chronicles", "actual": "2 Chronicles" }, + { "abbr": "second chronicles", "actual": "2 Chronicles" }, + { "abbr": "second chron", "actual": "2 Chronicles" }, + { "abbr": "second ch", "actual": "2 Chronicles" }, + { "abbr": "second chr", "actual": "2 Chronicles" }, + { "abbr": "sec Chronicles", "actual": "2 Chronicles" }, + { "abbr": "sec chronicles", "actual": "2 Chronicles" }, + { "abbr": "sec chron", "actual": "2 Chronicles" }, + { "abbr": "sec ch", "actual": "2 Chronicles" }, + { "abbr": "sec chr", "actual": "2 Chronicles" }, + { "abbr": "1 Chronicles", "actual": "1 Chronicles" }, + { "abbr": "1 chronicles", "actual": "1 Chronicles" }, + { "abbr": "1 chron", "actual": "1 Chronicles" }, + { "abbr": "1 ch", "actual": "1 Chronicles" }, + { "abbr": "1 chr", "actual": "1 Chronicles" }, + { "abbr": "i Chronicles", "actual": "1 Chronicles" }, + { "abbr": "i chronicles", "actual": "1 Chronicles" }, + { "abbr": "i chron", "actual": "1 Chronicles" }, + { "abbr": "i ch", "actual": "1 Chronicles" }, + { "abbr": "i chr", "actual": "1 Chronicles" }, + { "abbr": "1st Chronicles", "actual": "1 Chronicles" }, + { "abbr": "1st chronicles", "actual": "1 Chronicles" }, + { "abbr": "1st chron", "actual": "1 Chronicles" }, + { "abbr": "1st ch", "actual": "1 Chronicles" }, + { "abbr": "1st chr", "actual": "1 Chronicles" }, + { "abbr": "first Chronicles", "actual": "1 Chronicles" }, + { "abbr": "first chronicles", "actual": "1 Chronicles" }, + { "abbr": "first chron", "actual": "1 Chronicles" }, + { "abbr": "first ch", "actual": "1 Chronicles" }, + { "abbr": "first chr", "actual": "1 Chronicles" }, + { "abbr": "ezra", "actual": "Ezra" }, + { "abbr": "ezr", "actual": "Ezra" }, + { "abbr": "nehemiah", "actual": "Nehemiah" }, + { "abbr": "neh", "actual": "Nehemiah" }, + { "abbr": "ne", "actual": "Nehemiah" }, + { "abbr": "nehamiah", "actual": "Nehemiah" }, + { "abbr": "esther", "actual": "Esther" }, + { "abbr": "est", "actual": "Esther" }, + { "abbr": "es", "actual": "Esther" }, + { "abbr": "esth", "actual": "Esther" }, + { "abbr": "job", "actual": "Job" }, + { "abbr": "jo", "actual": "Job" }, + { "abbr": "jb", "actual": "Job" }, + { "abbr": "psalms", "actual": "Psalm" }, + { "abbr": "ps", "actual": "Psalm" }, + { "abbr": "psa", "actual": "Psalm" }, + { "abbr": "psalm", "actual": "Psalm" }, + { "abbr": "psm", "actual": "Psalm" }, + { "abbr": "proverbs", "actual": "Proverbs" }, + { "abbr": "prov", "actual": "Proverbs" }, + { "abbr": "pr", "actual": "Proverbs" }, + { "abbr": "pro", "actual": "Proverbs" }, + { "abbr": "proverb", "actual": "Proverbs" }, + { "abbr": "prv", "actual": "Proverbs" }, + { "abbr": "prvbs", "actual": "Proverbs" }, + { "abbr": "ecclesiastes", "actual": "Ecclesiastes" }, + { "abbr": "eccl", "actual": "Ecclesiastes" }, + { "abbr": "ecc", "actual": "Ecclesiastes" }, + { "abbr": "eccles", "actual": "Ecclesiastes" }, + { "abbr": "ec", "actual": "Ecclesiastes" }, + { "abbr": "ecl", "actual": "Ecclesiastes" }, + { "abbr": "ecclesiaste", "actual": "Ecclesiastes" }, + { "abbr": "song of solomon", "actual": "Song of Solomon" }, + { "abbr": "song of songs", "actual": "Song of Solomon" }, + { "abbr": "sos", "actual": "Song of Solomon" }, + { "abbr": "ss", "actual": "Song of Solomon" }, + { "abbr": "son", "actual": "Song of Solomon" }, + { "abbr": "so", "actual": "Song of Solomon" }, + { "abbr": "song", "actual": "Song of Solomon" }, + { "abbr": "songs", "actual": "Song of Solomon" }, + { "abbr": "isaiah", "actual": "Isaiah" }, + { "abbr": "is", "actual": "Isaiah" }, + { "abbr": "isah", "actual": "Isaiah" }, + { "abbr": "isai", "actual": "Isaiah" }, + { "abbr": "ia", "actual": "Isaiah" }, + { "abbr": "jerimiah", "actual": "Jeremiah" }, + { "abbr": "jeremiah", "actual": "Jeremiah" }, + { "abbr": "jer", "actual": "Jeremiah" }, + { "abbr": "je", "actual": "Jeremiah" }, + { "abbr": "jere", "actual": "Jeremiah" }, + { "abbr": "lamentations", "actual": "Lamentations" }, + { "abbr": "lam", "actual": "Lamentations" }, + { "abbr": "la", "actual": "Lamentations" }, + { "abbr": "lamentation", "actual": "Lamentations" }, + ]; + + for (let bk of booknames) { + it('Get Data for: ' + bk.abbr, () => { + let svc: BibleService = getTestBed().get(BibleService); + let book = Reference.parseBook(bk.abbr); + for (let i = 1; i <= book.lastchapter; i++) + { + let ref = new Reference(bk.abbr + " "+i).Section; + var r = svc.getResult(ref); + + expect(r.msg).toBe(':)'); + expect(r.ref).toBe(book.bookname + " "+i+":1 - *"); + expect(r.status).toBe(0); + expect(r.cs[0].vss.length).toBeGreaterThan(1); + } + }); + } +}); diff --git a/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.ts b/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.ts index b272f384..50ee8976 100644 --- a/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.ts +++ b/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.ts @@ -1,6 +1,6 @@ import { EventEmitter, Component, Output } from "@angular/core"; import { Platform, NavParams, ViewController } from 'ionic-angular'; -import { Reference } from '../../Reference.ts'; +import { Reference } from '../../Reference'; @Component({ selector: "strongs-modal", @@ -18,7 +18,7 @@ export class StrongsModal { public viewCtrl: ViewController ) { this.item = this.params.get('strongsid') as StrongsResult; - this.onPassageClicked.subscribe(item => + this.onPassageClicked.subscribe(item => this.params.get('onPassageClicked').getItems(item) ) } @@ -33,4 +33,4 @@ export class StrongsModal { let ref = this.makePassage(p); this.onPassageClicked.emit(ref); } -} \ No newline at end of file +} diff --git a/DynamicBibleIonic/src/components/strongs/strongs.ts b/DynamicBibleIonic/src/components/strongs/strongs.ts index 63530223..c79563fa 100644 --- a/DynamicBibleIonic/src/components/strongs/strongs.ts +++ b/DynamicBibleIonic/src/components/strongs/strongs.ts @@ -1,5 +1,5 @@ import { EventEmitter, Component, Input, Output } from "@angular/core"; -import { Reference } from '../../Reference.ts'; +import { Reference } from '../../Reference'; @Component({ selector: "strongs", @@ -21,7 +21,7 @@ export class Strongs { constructor() { } - close() + close() { this.onClose.emit(this.cardItem); } @@ -32,4 +32,4 @@ export class Strongs { let ref = this.makePassage(p); this.onPassageClicked.emit({ card: this.cardItem, qry: ref }); } -} \ No newline at end of file +} diff --git a/DynamicBibleIonic/src/components/words/words.ts b/DynamicBibleIonic/src/components/words/words.ts index 7da4ac23..0666ee18 100644 --- a/DynamicBibleIonic/src/components/words/words.ts +++ b/DynamicBibleIonic/src/components/words/words.ts @@ -1,5 +1,5 @@ import {EventEmitter, Component, Input, Output} from "@angular/core"; -import { Reference } from '../../Reference.ts'; +import { Reference } from '../../Reference'; @Component({ selector: "words", @@ -25,13 +25,13 @@ export class Words { this.onClose.emit(this.cardItem); } - makePassage(p: string) + makePassage(p: string) { return Reference.bookName(parseInt(p.split(":")[0])) + ' ' + p.split(":")[1] + ":" + p.split(":")[2]; } - openPassage(p: string) + openPassage(p: string) { let ref = this.makePassage(p); this.onPassageClicked.emit({ card: this.cardItem, qry: ref }); } -} \ No newline at end of file +} diff --git a/DynamicBibleIonic/src/pages/search/search.ts b/DynamicBibleIonic/src/pages/search/search.ts index 776f8f26..ee1b1a3d 100644 --- a/DynamicBibleIonic/src/pages/search/search.ts +++ b/DynamicBibleIonic/src/pages/search/search.ts @@ -1,222 +1,222 @@ -/// -import {Type, Component} from "@angular/core"; -import {Reference} from "../../Reference"; -import {BibleService} from "../../bible-service"; -import {Loading, LoadingController, ModalController } from "ionic-angular"; -import {StrongsService} from "../../strongs-service"; -import {WordService} from "../../word-service"; -import {StrongsModal} from "../../components/strongs-modal/strongs-modal.ts"; -import {Storage} from '@ionic/storage'; -import {UserProfile} from '../../UserProfile'; - -class Item -{ - id: number; - data: any; - type: Type; - dict: string; -} - -@Component({ - templateUrl: "search.html", - providers: [BibleService, StrongsService, WordService], -}) -export class SearchPage -{ - searchQuery: string = ""; - userProfile: UserProfile; - last: CardItem; - loader: Loading; - - constructor( - private strongsService: StrongsService - , private bibleService: BibleService - , private wordService: WordService - , public loadingCtrl: LoadingController - , public modalCtrl: ModalController - , public local: Storage) - { - this.userProfile = new UserProfile(UserProfile.createDefaultUser()); - - // Check if there is a profile saved in local storage - this.local.get('profile').then(profile => - { - let t = this.userProfile; - - if (profile !== null) - t = JSON.parse(profile); - - this.userProfile.update(t, local); - - this.initializeItems(this.userProfile); - }).catch(error => - { - console.log(error); - }); - - } - - initializeItems(u: UserProfile) - { - this.userProfile = u; - } - - presentStrongsModal(strongs: StrongsResult) - { - let modal = this.modalCtrl.create(StrongsModal, { strongsid: strongs, onPassageClicked: this }); - modal.present(); - } - - setQuery(searchbar) - { - this.searchQuery = searchbar.target.value; - } - getQuery(searchbar) - { - this.getItems(this.searchQuery); - } - - removeItem(item) - { - let idx = this.userProfile.user.items.indexOf(item); - this.userProfile.user.items.splice(idx, 1); - - // save the users settings. - this.userProfile.save(this.local); - } - - isError(t: string) - { - return t === "Error"; - } - isPassage(t: string) - { - return t === "Passage"; - } - isStrongs(t: string) - { - return t === "Strongs"; - } - isWords(t: string) - { - return t === "Words"; - } - - addItemToList(item) - { - if (this.userProfile.user.append_to_bottom) - { - if (this.last != null && this.userProfile.user.insert_next_to_item) - { - let idx = this.userProfile.user.items.indexOf(this.last); - this.userProfile.user.items.splice(idx + 1, 0, item); - } - else - this.userProfile.user.items.push(item); - } - else - { - if (this.last != null && this.userProfile.user.insert_next_to_item) - { - let idx = this.userProfile.user.items.indexOf(this.last); - this.userProfile.user.items.splice(idx, 0, item); - } - else - this.userProfile.user.items.unshift(item); - } - this.last = null; - } - - getItemsNextToCard(data: OpenData) - { - this.last = data.card; - this.getItems(data.qry); - } - - - getItems(search) - { - this.loader = this.loadingCtrl.create({ - content: "Looking up query..." - }); - this.loader.present().then( - () => - { - try - { - let qs = search.split(";"); - for (let x in qs) - { - if (qs.hasOwnProperty(x)) - { - let q = qs[x].trim(); - if (q !== "") - { - // its a search term. - if (q.search(/[0-9]/i) === -1) - { - let result = this.wordService.getResult(q); - if (result.status == 0) - this.addItemToList({ data: result, type: "Words", dict: "na" }); - else - this.addItemToList({ data: result.msg, type: "Error", dict: "na" }); - } - else if (q.search(/(H|G)[0-9]/i) !== -1) - { - // its a strongs lookup - let dict = q.substring(0, 1); - - if (dict.search(/h/i) !== -1) - { - dict = "heb"; - } else - { - dict = "grk"; - } - q = q.substring(1, q.length); - let result = this.strongsService.getResult(parseInt(q), dict); - if (result.status == -1) - this.addItemToList({ data: result.msg, type: "Error", dict: "na" }); - else - { - if (this.userProfile.user.strongs_modal) - this.presentStrongsModal(result); - else - this.addItemToList({ data: result, type: "Strongs", dict: "na" }); - } - } - else - { - // its a verse reference. - if (q.trim() !== "") - { - let myref = new Reference(q.trim()); - let r = this.bibleService.getResult(myref.Section); - r.ref = myref.toString(); - if (r.status == 0) - this.addItemToList({ data: r, type: "Passage", dict: r.testament == 'new' ? "G" : "H" }); - else - this.addItemToList({ data: r.msg, type: "Error", dict: "na" }); - } - } - } - } - } - if (this.userProfile.user.clear_search_after_query) - $(".searchbar-input").val(""); - - this.userProfile.save(this.local); - } - catch (error) - { - this.addItemToList({ data: error, type: "Error", dict: "na" }); - console.log(error); - } - finally - { - this.loader.dismiss(); - } - } - ); - } -} \ No newline at end of file +/// +import {Type, Component} from "@angular/core"; +import {Reference} from "../../Reference"; +import {BibleService} from "../../bible-service"; +import {Loading, LoadingController, ModalController } from "ionic-angular"; +import {StrongsService} from "../../strongs-service"; +import {WordService} from "../../word-service"; +import {StrongsModal} from "../../components/strongs-modal/strongs-modal"; +import {Storage} from '@ionic/storage'; +import {UserProfile} from '../../UserProfile'; + +class Item +{ + id: number; + data: any; + type: Type; + dict: string; +} + +@Component({ + templateUrl: "search.html", + providers: [BibleService, StrongsService, WordService], +}) +export class SearchPage +{ + searchQuery: string = ""; + userProfile: UserProfile; + last: CardItem; + loader: Loading; + + constructor( + private strongsService: StrongsService + , private bibleService: BibleService + , private wordService: WordService + , public loadingCtrl: LoadingController + , public modalCtrl: ModalController + , public local: Storage) + { + this.userProfile = new UserProfile(UserProfile.createDefaultUser()); + + // Check if there is a profile saved in local storage + this.local.get('profile').then(profile => + { + let t = this.userProfile; + + if (profile !== null) + t = JSON.parse(profile); + + this.userProfile.update(t, local); + + this.initializeItems(this.userProfile); + }).catch(error => + { + console.log(error); + }); + + } + + initializeItems(u: UserProfile) + { + this.userProfile = u; + } + + presentStrongsModal(strongs: StrongsResult) + { + let modal = this.modalCtrl.create(StrongsModal, { strongsid: strongs, onPassageClicked: this }); + modal.present(); + } + + setQuery(searchbar) + { + this.searchQuery = searchbar.target.value; + } + getQuery(searchbar) + { + this.getItems(this.searchQuery); + } + + removeItem(item) + { + let idx = this.userProfile.user.items.indexOf(item); + this.userProfile.user.items.splice(idx, 1); + + // save the users settings. + this.userProfile.save(this.local); + } + + isError(t: string) + { + return t === "Error"; + } + isPassage(t: string) + { + return t === "Passage"; + } + isStrongs(t: string) + { + return t === "Strongs"; + } + isWords(t: string) + { + return t === "Words"; + } + + addItemToList(item) + { + if (this.userProfile.user.append_to_bottom) + { + if (this.last != null && this.userProfile.user.insert_next_to_item) + { + let idx = this.userProfile.user.items.indexOf(this.last); + this.userProfile.user.items.splice(idx + 1, 0, item); + } + else + this.userProfile.user.items.push(item); + } + else + { + if (this.last != null && this.userProfile.user.insert_next_to_item) + { + let idx = this.userProfile.user.items.indexOf(this.last); + this.userProfile.user.items.splice(idx, 0, item); + } + else + this.userProfile.user.items.unshift(item); + } + this.last = null; + } + + getItemsNextToCard(data: OpenData) + { + this.last = data.card; + this.getItems(data.qry); + } + + + getItems(search) + { + this.loader = this.loadingCtrl.create({ + content: "Looking up query..." + }); + this.loader.present().then( + () => + { + try + { + let qs = search.split(";"); + for (let x in qs) + { + if (qs.hasOwnProperty(x)) + { + let q = qs[x].trim(); + if (q !== "") + { + // its a search term. + if (q.search(/[0-9]/i) === -1) + { + let result = this.wordService.getResult(q); + if (result.status == 0) + this.addItemToList({ data: result, type: "Words", dict: "na" }); + else + this.addItemToList({ data: result.msg, type: "Error", dict: "na" }); + } + else if (q.search(/(H|G)[0-9]/i) !== -1) + { + // its a strongs lookup + let dict = q.substring(0, 1); + + if (dict.search(/h/i) !== -1) + { + dict = "heb"; + } else + { + dict = "grk"; + } + q = q.substring(1, q.length); + let result = this.strongsService.getResult(parseInt(q), dict); + if (result.status == -1) + this.addItemToList({ data: result.msg, type: "Error", dict: "na" }); + else + { + if (this.userProfile.user.strongs_modal) + this.presentStrongsModal(result); + else + this.addItemToList({ data: result, type: "Strongs", dict: "na" }); + } + } + else + { + // its a verse reference. + if (q.trim() !== "") + { + let myref = new Reference(q.trim()); + let r = this.bibleService.getResult(myref.Section); + r.ref = myref.toString(); + if (r.status == 0) + this.addItemToList({ data: r, type: "Passage", dict: r.testament == 'new' ? "G" : "H" }); + else + this.addItemToList({ data: r.msg, type: "Error", dict: "na" }); + } + } + } + } + } + if (this.userProfile.user.clear_search_after_query) + $(".searchbar-input").val(""); + + this.userProfile.save(this.local); + } + catch (error) + { + this.addItemToList({ data: error, type: "Error", dict: "na" }); + console.log(error); + } + finally + { + this.loader.dismiss(); + } + } + ); + } +}