summaryrefslogtreecommitdiff
path: root/bindings/objc/test/SwordModuleTest.m
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/objc/test/SwordModuleTest.m')
-rw-r--r--bindings/objc/test/SwordModuleTest.m200
1 files changed, 174 insertions, 26 deletions
diff --git a/bindings/objc/test/SwordModuleTest.m b/bindings/objc/test/SwordModuleTest.m
index a308513..2f1a489 100644
--- a/bindings/objc/test/SwordModuleTest.m
+++ b/bindings/objc/test/SwordModuleTest.m
@@ -6,43 +6,184 @@
// Copyright 2010 Software by MABE. All rights reserved.
//
-#import <ObjCSword/ObjCSword.h>
#import "SwordModuleTest.h"
+#import <ObjCSword/ObjCSword.h>
+
+@class SwordModule, SwordManager;
+
+@interface SwordModuleTest : XCTestCase {
+ SwordManager *mgr;
+ SwordModule *mod;
+}
+
+@end
@implementation SwordModuleTest
- (void)setUp {
- [Configuration configWithImpl:[[[OSXConfiguration alloc] init] autorelease]];
- mgr = [SwordManager managerWithPath:[[Configuration config] defaultModulePath]];
- mod = [mgr moduleWithName:@"GerNeUe"];
+ [Configuration configWithImpl:[[OSXConfiguration alloc] init]];
+
+ [[FilterProviderFactory providerFactory] initWithImpl:[[DefaultFilterProvider alloc] init]];
+
+ mgr = [SwordManager managerWithPath:[[[NSBundle bundleForClass:[self class]] resourcePath] stringByAppendingPathComponent:@"TestModules"]];
+ mod = [mgr moduleWithName:@"KJV"];
}
-- (void)testLoopRenderedVerses {
- SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerSch"];
- STAssertNotNil(bible, @"Module is nil");
+- (void)testModuleIntroductionGer {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerNeUe"];
- NSArray *verses = [bible renderedTextEntriesForRef:@"Gen"];
- STAssertNotNil(verses, @"");
- STAssertTrue([bible numberOfVerseKeysForReference:@"Gen"] == [verses count], @"");
+ NSString *modIntro = [bible moduleIntroduction];
+ NSLog(@"mod intro: %@", modIntro);
+ XCTAssertNotNil(modIntro);
+ XCTAssertTrue([@"Im Anfang schuf Gott Himmel und Erde." isEqualToString:modIntro]);
}
-- (void)testRenderedVerseText {
- SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerSch"];
- STAssertNotNil(bible, @"Module is nil");
+/*
+- (void)testFirstBookATIntro {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"];
- SwordModuleTextEntry *text = [bible textEntryForKeyString:@"gen1.1" textType:TextTypeRendered];
- STAssertNotNil(text, @"");
- STAssertTrue([[text text] length] > 0, @"");
+ SwordBibleBook *book = [bible bookList][0];
+ NSString *intro = [bible bookIntroductionFor:book];
+ NSLog(@"testament: '%i', book '%@' intro: %@", [book testament], [book name], intro);
+ XCTAssertNotNil(intro);
+ XCTAssertTrue([intro hasPrefix:@" <!P><br />Das erste Buch der Bibel wird auch Genesis"]);
}
+*/
-- (void)testCloneModule {
- SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerSch"];
- STAssertNotNil(bible, @"Module is nil");
+- (void)testFirstBookATIntroGer {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerNeUe"];
- /*
- SwordBible *cloned = (SwordBible *)[bible clone];
- STAssertNotNil(cloned, @"Module is nil");
- */
+ SwordBibleBook *book = [bible bookList][0];
+ NSString *intro = [bible bookIntroductionFor:book];
+ NSLog(@"testament: '%i', book '%@' intro: %@", [book testament], [book name], intro);
+ XCTAssertNotNil(intro);
+ XCTAssertTrue([intro hasPrefix:@" <!P><br />Das erste Buch der Bibel wird auch Genesis"]);
+}
+
+/*
+- (void)testFirstBookNTIntro {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"];
+
+ SwordBibleBook *book = [bible bookWithNamePrefix:@"Mat"];
+ NSString *intro = [bible bookIntroductionFor:book];
+ NSLog(@"testament: '%i', book '%@' intro: %@", [book testament], [book name], intro);
+ XCTAssertNotNil(intro);
+ XCTAssertTrue([intro hasPrefix:@" <!P><br />Um die Zeit der Apostelversammlung herum"]);
+}
+*/
+
+- (void)testJesusWordsInRed {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"];
+ XCTAssertNotNil(bible, @"Module is nil");
+
+ [mgr setGlobalOption:SW_OPTION_REDLETTERWORDS value:SW_ON];
+ SwordBibleTextEntry *text = (SwordBibleTextEntry *) [bible renderedTextEntryForRef:@"Mat 4:4"];
+ XCTAssertTrue(text != nil);
+ NSLog(@"Mat 4:4: %@", [text text]);
+ XCTAssertTrue([[text text] containsString:@"But he answered and said, <font color=\"red\"> It is written, Man shall not live by bread alone, but by every word that proceedeth out of the mouth of God.</font>"]);
+}
+
+- (void)testStrongsNumberHebrewRetrieval {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"];
+ XCTAssertNotNil(bible, @"Module is nil");
+
+ [bible setKeyString:@"Gen 1:1"];
+ NSArray *strongsNumbers = [bible entryAttributeValuesLemma];
+ XCTAssertTrue(strongsNumbers != nil);
+ XCTAssertTrue([strongsNumbers count] > 0);
+ NSString *combinedString = [strongsNumbers componentsJoinedByString:@","];
+ NSLog(@"%@", combinedString);
+ XCTAssertTrue([@"H07225,H0430,H0853 H01254,H08064,H0853,H0776" isEqualToString:combinedString]);
+}
+
+- (void)testStrongsNumberHebrewNormalizedRetrieval {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"];
+ XCTAssertNotNil(bible, @"Module is nil");
+
+ [bible setKeyString:@"Gen 1:1"];
+ NSArray *strongsNumbers = [bible entryAttributeValuesLemmaNormalized];
+ XCTAssertTrue(strongsNumbers != nil);
+ XCTAssertTrue([strongsNumbers count] > 0);
+ NSString *combinedString = [strongsNumbers componentsJoinedByString:@","];
+ NSLog(@"%@", combinedString);
+ XCTAssertTrue([@"H07225,H00430,H00853,H01254,H08064,H00853,H00776" isEqualToString:combinedString]);
+}
+
+- (void)testStrongsNumberGreekRetrieval {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"];
+ XCTAssertNotNil(bible, @"Module is nil");
+
+ [bible setKeyString:@"Mat 1:1"];
+ NSArray *strongsNumbers = [bible entryAttributeValuesLemma];
+ XCTAssertTrue(strongsNumbers != nil);
+ XCTAssertTrue([strongsNumbers count] > 0);
+ NSString *combinedString = [strongsNumbers componentsJoinedByString:@","];
+ NSLog(@"%@", combinedString);
+ XCTAssertTrue([@"G976,G1078,G2424,G5547,G5207,G1138,G5207,G11" isEqualToString:combinedString]);
+}
+
+- (void)testStrongsNumberGreekNormalizedRetrieval {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"];
+ XCTAssertNotNil(bible, @"Module is nil");
+
+ [bible setKeyString:@"Mat 1:1"];
+ NSArray *strongsNumbers = [bible entryAttributeValuesLemmaNormalized];
+ XCTAssertTrue(strongsNumbers != nil);
+ XCTAssertTrue([strongsNumbers count] > 0);
+ NSString *combinedString = [strongsNumbers componentsJoinedByString:@","];
+ NSLog(@"%@", combinedString);
+ XCTAssertTrue([@"G00976,G01078,G02424,G05547,G05207,G01138,G05207,G00011" isEqualToString:combinedString]);
+}
+
+- (void)testFirstBookNTIntroGer {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerNeUe"];
+
+ SwordBibleBook *book = [bible bookWithNamePrefix:@"Mat"];
+ NSString *intro = [bible bookIntroductionFor:book];
+ NSLog(@"testament: '%i', book '%@' intro: %@", [book testament], [book name], intro);
+ XCTAssertNotNil(intro);
+ XCTAssertTrue([intro hasPrefix:@" <!P><br />Um die Zeit der Apostelversammlung herum"]);
+}
+
+- (void)testPreverseHeading {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"];
+
+ [mgr setGlobalOption:SW_OPTION_HEADINGS value:SW_ON];
+ SwordBibleTextEntry *text = (SwordBibleTextEntry *) [bible renderedTextEntryForRef:@"Numbers 1:47"];
+ NSLog(@"Preverse text: %@", [text preVerseHeading]);
+ XCTAssertTrue([[text preVerseHeading] length] > 0);
+ XCTAssertTrue([[text preVerseHeading] isEqualToString:@"<title>Die Sonderstellung der Leviten</title>"]);
+ [mgr setGlobalOption:SW_OPTION_HEADINGS value:SW_OFF];
+}
+
+- (void)testPreverseHeading2 {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"GerNeUe"];
+
+ [mgr setGlobalOption:SW_OPTION_HEADINGS value:SW_ON];
+ SwordBibleTextEntry *text = (SwordBibleTextEntry *) [bible renderedTextEntryForRef:@"Numbers 4:21"];
+ NSLog(@"Preverse text: %@", [text preVerseHeading]);
+ XCTAssertTrue([[text preVerseHeading] length] > 0);
+ XCTAssertTrue([[text preVerseHeading] isEqualToString:@"<title>Die Gerschoniten</title>"]);
+ [mgr setGlobalOption:SW_OPTION_HEADINGS value:SW_OFF];
+}
+
+- (void)testLoopRenderedVerses {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"];
+ XCTAssertNotNil(bible, @"Module is nil");
+
+ NSArray *verses = [bible renderedTextEntriesForRef:@"Gen"];
+ XCTAssertNotNil(verses, @"");
+ XCTAssertTrue([bible numberOfVerseKeysForReference:@"Gen"] == [verses count], @"");
+}
+
+- (void)testRenderedVerseText {
+ SwordBible *bible = (SwordBible *)[mgr moduleWithName:@"KJV"];
+ XCTAssertNotNil(bible, @"Module is nil");
+
+ SwordModuleTextEntry *text = [bible renderedTextEntryForRef:@"gen1.1"];
+ XCTAssertNotNil(text, @"");
+ NSLog(@"text: %@", [text text]);
+ XCTAssertTrue([[text text] length] > 0, @"");
}
- (void)testLoopWithModulePos {
@@ -129,7 +270,7 @@
[vk setKeyText:[lk keyText]];
long lowVerse = [vk verse] - context;
long highVerse = lowVerse + (context * 2);
- [vk setVerse:lowVerse];
+ [vk setVerse:(int)lowVerse];
[mod setSwordKey:vk];
for(;lowVerse <= highVerse;lowVerse++) {
ref = [vk keyText];
@@ -149,13 +290,20 @@
}
}
-- (void)testStrippedTextForRef {
- SwordVerseKey *vk = [SwordVerseKey verseKeyWithRef:@"1Mo 1:2"];
+- (void)testVersePositioning {
+ SwordVerseKey *vk = [SwordVerseKey verseKeyWithRef:@"gen 1:2"];
NSLog(@"start position: %@", [vk keyText]);
[vk decrement];
NSLog(@"decrement position: %@", [vk keyText]);
+ XCTAssertTrue([vk chapter] == 1);
+ XCTAssertTrue([vk book] == 1);
+ XCTAssertTrue([vk verse] == 1);
+
[vk setVerse:[vk verse] + 3];
NSLog(@"verse + 3: %@", [vk keyText]);
+ XCTAssertTrue([vk chapter] == 1);
+ XCTAssertTrue([vk book] == 1);
+ XCTAssertTrue([vk verse] == 4);
}
@end