diff --git a/pmd-objectivec/pom.xml b/pmd-objectivec/pom.xml index 464c81642d..de58e539f5 100644 --- a/pmd-objectivec/pom.xml +++ b/pmd-objectivec/pom.xml @@ -80,10 +80,20 @@ junit test + + org.junit.vintage + junit-vintage-engine + test + net.sourceforge.pmd pmd-test test + + net.sourceforge.pmd + pmd-lang-test + test + diff --git a/pmd-objectivec/src/test/java/net/sourceforge/pmd/cpd/ObjectiveCTokenizerTest.java b/pmd-objectivec/src/test/java/net/sourceforge/pmd/cpd/ObjectiveCTokenizerTest.java index 7fdd53a4ca..00d676bb5d 100644 --- a/pmd-objectivec/src/test/java/net/sourceforge/pmd/cpd/ObjectiveCTokenizerTest.java +++ b/pmd-objectivec/src/test/java/net/sourceforge/pmd/cpd/ObjectiveCTokenizerTest.java @@ -4,34 +4,41 @@ package net.sourceforge.pmd.cpd; -import java.io.IOException; -import java.nio.charset.StandardCharsets; +import java.util.Properties; -import org.apache.commons.io.IOUtils; -import org.junit.Before; import org.junit.Test; -import net.sourceforge.pmd.testframework.AbstractTokenizerTest; +import net.sourceforge.pmd.cpd.test.CpdTextComparisonTest; -public class ObjectiveCTokenizerTest extends AbstractTokenizerTest { +public class ObjectiveCTokenizerTest extends CpdTextComparisonTest { - private static final String FILENAME = "AFHTTPRequestOperation.m"; - @Before - @Override - public void buildTokenizer() throws IOException { - this.tokenizer = new ObjectiveCTokenizer(); - this.sourceCode = new SourceCode(new SourceCode.StringCodeLoader(this.getSampleCode(), FILENAME)); + public ObjectiveCTokenizerTest() { + super(".m"); } @Override - public String getSampleCode() throws IOException { - return IOUtils.toString(ObjectiveCTokenizer.class.getResourceAsStream(FILENAME), StandardCharsets.UTF_8); + protected String getResourcePrefix() { + return "../lang/objc/cpd/testdata"; + } + + @Override + public Tokenizer newTokenizer(Properties properties) { + return new ObjectiveCTokenizer(); } @Test - public void tokenizeTest() throws IOException { - this.expectedTokenCount = 884; - super.tokenizeTest(); + public void testLongSample() { + doTest("big_sample"); + } + + @Test + public void testUnicodeEscape() { + doTest("unicodeEscapeInString"); + } + + @Test + public void testUnicodeCharInIdent() { + doTest("unicodeCharInIdent"); } } diff --git a/pmd-objectivec/src/test/java/net/sourceforge/pmd/cpd/UTF8EscapesInStringLiteralObjCTokenizerTest.java b/pmd-objectivec/src/test/java/net/sourceforge/pmd/cpd/UTF8EscapesInStringLiteralObjCTokenizerTest.java deleted file mode 100644 index 8a4491742e..0000000000 --- a/pmd-objectivec/src/test/java/net/sourceforge/pmd/cpd/UTF8EscapesInStringLiteralObjCTokenizerTest.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd.cpd; - -import java.io.IOException; -import java.nio.charset.StandardCharsets; - -import org.apache.commons.io.IOUtils; -import org.junit.Before; -import org.junit.Test; - -import net.sourceforge.pmd.testframework.AbstractTokenizerTest; - -//Tests if the ObjectiveC tokenizer supports UTF-8 escapes in string literals -public class UTF8EscapesInStringLiteralObjCTokenizerTest extends AbstractTokenizerTest { - - private static final String FILENAME = "FileWithUTF8EscapeInStringLiteral.m"; - - @Before - @Override - public void buildTokenizer() throws IOException { - this.tokenizer = new ObjectiveCTokenizer(); - this.sourceCode = new SourceCode(new SourceCode.StringCodeLoader(this.getSampleCode(), FILENAME)); - } - - @Override - public String getSampleCode() throws IOException { - return IOUtils.toString(ObjectiveCTokenizer.class.getResourceAsStream(FILENAME), StandardCharsets.UTF_8); - } - - @Test - public void tokenizeTest() throws IOException { - this.expectedTokenCount = 45; - super.tokenizeTest(); - } -} diff --git a/pmd-objectivec/src/test/java/net/sourceforge/pmd/cpd/UnicodeObjectiveCTokenizerTest.java b/pmd-objectivec/src/test/java/net/sourceforge/pmd/cpd/UnicodeObjectiveCTokenizerTest.java deleted file mode 100644 index 2c18f73fa8..0000000000 --- a/pmd-objectivec/src/test/java/net/sourceforge/pmd/cpd/UnicodeObjectiveCTokenizerTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd.cpd; - -import static org.junit.Assert.assertEquals; - -import java.io.IOException; -import java.nio.charset.StandardCharsets; - -import org.apache.commons.io.IOUtils; -import org.junit.Before; -import org.junit.Test; - -import net.sourceforge.pmd.PMD; -import net.sourceforge.pmd.testframework.AbstractTokenizerTest; - -//Tests if the ObjectiveC tokenizer supports identifiers with unicode characters -public class UnicodeObjectiveCTokenizerTest extends AbstractTokenizerTest { - - private static final String FILENAME = "NCClient.m"; - - @Before - @Override - public void buildTokenizer() throws IOException { - this.tokenizer = new ObjectiveCTokenizer(); - this.sourceCode = new SourceCode(new SourceCode.StringCodeLoader(this.getSampleCode(), FILENAME)); - } - - @Override - public String getSampleCode() throws IOException { - return IOUtils.toString(ObjectiveCTokenizer.class.getResourceAsStream(FILENAME), StandardCharsets.UTF_8); - } - - @Test - public void tokenizeTest() throws IOException { - this.expectedTokenCount = 10; - super.tokenizeTest(); - } - - @Test - public void testIgnoreBetweenSpecialComments() throws IOException { - SourceCode sourceCode = new SourceCode(new SourceCode.StringCodeLoader( - "// CPD-OFF" + PMD.EOL - + "static SecCertificateRef gNСServerLogonCertificate;" + PMD.EOL - + "// CPD-ON" + PMD.EOL - + "@end" + PMD.EOL - )); - Tokens tokens = new Tokens(); - tokenizer.tokenize(sourceCode, tokens); - TokenEntry.getEOF(); - assertEquals(2, tokens.size()); // 2 tokens: "@end" + EOF - } -} diff --git a/pmd-objectivec/src/test/resources/net/sourceforge/pmd/cpd/AFHTTPRequestOperation.m b/pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/big_sample.m similarity index 100% rename from pmd-objectivec/src/test/resources/net/sourceforge/pmd/cpd/AFHTTPRequestOperation.m rename to pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/big_sample.m diff --git a/pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/big_sample.txt b/pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/big_sample.txt new file mode 100644 index 0000000000..e9dddfa883 --- /dev/null +++ b/pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/big_sample.txt @@ -0,0 +1,1022 @@ + [Image] or [Truncated image[ Bcol Ecol +L28 + [static] 1 6 + [dispatch_queue_t] 8 23 + [http_request_operation_processing_[ 25 63 + [(] 64 64 + [)] 65 65 + [{] 67 67 +L29 + [static] 5 10 + [dispatch_queue_t] 12 27 + [af_http_request_operation_processi[ 29 70 + [;] 71 71 +L30 + [static] 5 10 + [dispatch_once_t] 12 26 + [onceToken] 28 36 + [;] 37 37 +L31 + [dispatch_once] 5 17 + [(] 18 18 + [&] 19 19 + [onceToken] 20 28 + [,] 29 29 + [^] 31 31 + [{] 32 32 +L32 + [af_http_request_operation_processi[ 9 50 + [=] 52 52 + [dispatch_queue_create] 54 74 + [(] 75 75 + ["com.alamofire.networking.http-req[ 76 125 + [,] 126 126 + [DISPATCH_QUEUE_CONCURRENT] 128 152 + [)] 153 153 + [;] 154 154 +L33 + [}] 5 5 + [)] 6 6 + [;] 7 7 +L35 + [return] 5 10 + [af_http_request_operation_processi[ 12 53 + [;] 54 54 +L36 + [}] 1 1 +L38 + [static] 1 6 + [dispatch_group_t] 8 23 + [http_request_operation_completion_[ 25 63 + [(] 64 64 + [)] 65 65 + [{] 67 67 +L39 + [static] 5 10 + [dispatch_group_t] 12 27 + [af_http_request_operation_completi[ 29 70 + [;] 71 71 +L40 + [static] 5 10 + [dispatch_once_t] 12 26 + [onceToken] 28 36 + [;] 37 37 +L41 + [dispatch_once] 5 17 + [(] 18 18 + [&] 19 19 + [onceToken] 20 28 + [,] 29 29 + [^] 31 31 + [{] 32 32 +L42 + [af_http_request_operation_completi[ 9 50 + [=] 52 52 + [dispatch_group_create] 54 74 + [(] 75 75 + [)] 76 76 + [;] 77 77 +L43 + [}] 5 5 + [)] 6 6 + [;] 7 7 +L45 + [return] 5 10 + [af_http_request_operation_completi[ 12 53 + [;] 54 54 +L46 + [}] 1 1 +L50 + [@interface] 1 10 + [AFURLConnectionOperation] 12 35 + [(] 37 37 + [)] 38 38 +L51 + [@property] 1 9 + [(] 11 11 + [readwrite] 12 20 + [,] 21 21 + [nonatomic] 23 31 + [,] 32 32 + [strong] 34 39 + [)] 40 40 + [NSURLRequest] 42 53 + [*] 55 55 + [request] 56 62 + [;] 63 63 +L52 + [@property] 1 9 + [(] 11 11 + [readwrite] 12 20 + [,] 21 21 + [nonatomic] 23 31 + [,] 32 32 + [strong] 34 39 + [)] 40 40 + [NSURLResponse] 42 54 + [*] 56 56 + [response] 57 64 + [;] 65 65 +L53 + [@end] 1 4 +L55 + [@interface] 1 10 + [AFHTTPRequestOperation] 12 33 + [(] 35 35 + [)] 36 36 +L56 + [@property] 1 9 + [(] 11 11 + [readwrite] 12 20 + [,] 21 21 + [nonatomic] 23 31 + [,] 32 32 + [strong] 34 39 + [)] 40 40 + [NSHTTPURLResponse] 42 58 + [*] 60 60 + [response] 61 68 + [;] 69 69 +L57 + [@property] 1 9 + [(] 11 11 + [readwrite] 12 20 + [,] 21 21 + [nonatomic] 23 31 + [,] 32 32 + [strong] 34 39 + [)] 40 40 + [id] 42 43 + [responseObject] 45 58 + [;] 59 59 +L58 + [@property] 1 9 + [(] 11 11 + [readwrite] 12 20 + [,] 21 21 + [nonatomic] 23 31 + [,] 32 32 + [strong] 34 39 + [)] 40 40 + [NSError] 42 48 + [*] 50 50 + [responseSerializationError] 51 76 + [;] 77 77 +L59 + [@property] 1 9 + [(] 11 11 + [readwrite] 12 20 + [,] 21 21 + [nonatomic] 23 31 + [,] 32 32 + [strong] 34 39 + [)] 40 40 + [NSRecursiveLock] 42 56 + [*] 58 58 + [lock] 59 62 + [;] 63 63 +L60 + [@end] 1 4 +L62 + [@implementation] 1 15 + [AFHTTPRequestOperation] 17 38 +L63 + [@dynamic] 1 8 + [lock] 10 13 + [;] 14 14 +L65 + [-] 1 1 + [(] 3 3 + [instancetype] 4 15 + [)] 16 16 + [initWithRequest] 17 31 + [:] 32 32 + [(] 33 33 + [NSURLRequest] 34 45 + [*] 47 47 + [)] 48 48 + [urlRequest] 49 58 + [{] 60 60 +L66 + [self] 5 8 + [=] 10 10 + [\[] 12 12 + [super] 13 17 + [initWithRequest] 19 33 + [:] 34 34 + [urlRequest] 35 44 + [\]] 45 45 + [;] 46 46 +L67 + [if] 5 6 + [(] 8 8 + [!] 9 9 + [self] 10 13 + [)] 14 14 + [{] 16 16 +L68 + [return] 9 14 + [nil] 16 18 + [;] 19 19 +L69 + [}] 5 5 +L71 + [self] 5 8 + [.] 9 9 + [responseSerializer] 10 27 + [=] 29 29 + [\[] 31 31 + [AFHTTPResponseSerializer] 32 55 + [serializer] 57 66 + [\]] 67 67 + [;] 68 68 +L73 + [return] 5 10 + [self] 12 15 + [;] 16 16 +L74 + [}] 1 1 +L76 + [-] 1 1 + [(] 3 3 + [void] 4 7 + [)] 8 8 + [setResponseSerializer] 9 29 + [:] 30 30 + [(] 31 31 + [AFHTTPResponseSerializer] 32 55 + [<] 57 57 + [AFURLResponseSerialization] 58 83 + [>] 84 84 + [*] 86 86 + [)] 87 87 + [responseSerializer] 88 105 + [{] 107 107 +L77 + [NSParameterAssert] 5 21 + [(] 22 22 + [responseSerializer] 23 40 + [)] 41 41 + [;] 42 42 +L79 + [\[] 5 5 + [self] 6 9 + [.] 10 10 + [lock] 11 14 + [lock] 16 19 + [\]] 20 20 + [;] 21 21 +L80 + [_responseSerializer] 5 23 + [=] 25 25 + [responseSerializer] 27 44 + [;] 45 45 +L81 + [self] 5 8 + [.] 9 9 + [responseObject] 10 23 + [=] 25 25 + [nil] 27 29 + [;] 30 30 +L82 + [self] 5 8 + [.] 9 9 + [responseSerializationError] 10 35 + [=] 37 37 + [nil] 39 41 + [;] 42 42 +L83 + [\[] 5 5 + [self] 6 9 + [.] 10 10 + [lock] 11 14 + [unlock] 16 21 + [\]] 22 22 + [;] 23 23 +L84 + [}] 1 1 +L86 + [-] 1 1 + [(] 3 3 + [id] 4 5 + [)] 6 6 + [responseObject] 7 20 + [{] 22 22 +L87 + [\[] 5 5 + [self] 6 9 + [.] 10 10 + [lock] 11 14 + [lock] 16 19 + [\]] 20 20 + [;] 21 21 +L88 + [if] 5 6 + [(] 8 8 + [!] 9 9 + [_responseObject] 10 24 + [&&] 26 27 + [\[] 29 29 + [self] 30 33 + [isFinished] 35 44 + [\]] 45 45 + [&&] 47 48 + [!] 50 50 + [self] 51 54 + [.] 55 55 + [error] 56 60 + [)] 61 61 + [{] 63 63 +L89 + [NSError] 9 15 + [*] 17 17 + [error] 18 22 + [=] 24 24 + [nil] 26 28 + [;] 29 29 +L90 + [self] 9 12 + [.] 13 13 + [responseObject] 14 27 + [=] 29 29 + [\[] 31 31 + [self] 32 35 + [.] 36 36 + [responseSerializer] 37 54 + [responseObjectForResponse] 56 80 + [:] 81 81 + [self] 82 85 + [.] 86 86 + [response] 87 94 + [data] 96 99 + [:] 100 100 + [self] 101 104 + [.] 105 105 + [responseData] 106 117 + [error] 119 123 + [:] 124 124 + [&] 125 125 + [error] 126 130 + [\]] 131 131 + [;] 132 132 +L91 + [if] 9 10 + [(] 12 12 + [error] 13 17 + [)] 18 18 + [{] 20 20 +L92 + [self] 13 16 + [.] 17 17 + [responseSerializationError] 18 43 + [=] 45 45 + [error] 47 51 + [;] 52 52 +L93 + [}] 9 9 +L94 + [}] 5 5 +L95 + [\[] 5 5 + [self] 6 9 + [.] 10 10 + [lock] 11 14 + [unlock] 16 21 + [\]] 22 22 + [;] 23 23 +L97 + [return] 5 10 + [_responseObject] 12 26 + [;] 27 27 +L98 + [}] 1 1 +L100 + [-] 1 1 + [(] 3 3 + [NSError] 4 10 + [*] 12 12 + [)] 13 13 + [error] 14 18 + [{] 20 20 +L101 + [if] 5 6 + [(] 8 8 + [_responseSerializationError] 9 35 + [)] 36 36 + [{] 38 38 +L102 + [return] 9 14 + [_responseSerializationError] 16 42 + [;] 43 43 +L103 + [}] 5 5 + [else] 7 10 + [{] 12 12 +L104 + [return] 9 14 + [\[] 16 16 + [super] 17 21 + [error] 23 27 + [\]] 28 28 + [;] 29 29 +L105 + [}] 5 5 +L106 + [}] 1 1 +L110 + [-] 1 1 + [(] 3 3 + [void] 4 7 + [)] 8 8 + [setCompletionBlockWithSuccess] 9 37 + [:] 38 38 + [success] 103 109 +L111 + [failure] 31 37 + [:] 38 38 + [failure] 100 106 +L112 + [{] 1 1 +L117 + [self] 5 8 + [.] 9 9 + [completionBlock] 10 24 + [=] 26 26 + [^] 28 28 + [{] 29 29 +L118 + [if] 9 10 + [(] 12 12 + [self] 13 16 + [.] 17 17 + [completionGroup] 18 32 + [)] 33 33 + [{] 35 35 +L119 + [dispatch_group_enter] 13 32 + [(] 33 33 + [self] 34 37 + [.] 38 38 + [completionGroup] 39 53 + [)] 54 54 + [;] 55 55 +L120 + [}] 9 9 +L122 + [dispatch_async] 9 22 + [(] 23 23 + [http_request_operation_processing_[ 24 62 + [(] 63 63 + [)] 64 64 + [,] 65 65 + [^] 67 67 + [{] 68 68 +L123 + [if] 13 14 + [(] 16 16 + [self] 17 20 + [.] 21 21 + [error] 22 26 + [)] 27 27 + [{] 29 29 +L124 + [if] 17 18 + [(] 20 20 + [failure] 21 27 + [)] 28 28 + [{] 30 30 +L125 + [dispatch_group_async] 21 40 + [(] 41 41 + [self] 42 45 + [.] 46 46 + [completionGroup] 47 61 + [?] 63 63 + [:] 64 64 + [http_request_operation_completion_[ 66 104 + [(] 105 105 + [)] 106 106 + [,] 107 107 + [self] 109 112 + [.] 113 113 + [completionQueue] 114 128 + [?] 130 130 + [:] 131 131 + [dispatch_get_main_queue] 133 155 + [(] 156 156 + [)] 157 157 + [,] 158 158 + [^] 160 160 + [{] 161 161 +L126 + [failure] 25 31 + [(] 32 32 + [self] 33 36 + [,] 37 37 + [self] 39 42 + [.] 43 43 + [error] 44 48 + [)] 49 49 + [;] 50 50 +L127 + [}] 21 21 + [)] 22 22 + [;] 23 23 +L128 + [}] 17 17 +L129 + [}] 13 13 + [else] 15 18 + [{] 20 20 +L130 + [id] 17 18 + [responseObject] 20 33 + [=] 35 35 + [self] 37 40 + [.] 41 41 + [responseObject] 42 55 + [;] 56 56 +L131 + [if] 17 18 + [(] 20 20 + [self] 21 24 + [.] 25 25 + [error] 26 30 + [)] 31 31 + [{] 33 33 +L132 + [if] 21 22 + [(] 24 24 + [failure] 25 31 + [)] 32 32 + [{] 34 34 +L133 + [dispatch_group_async] 25 44 + [(] 45 45 + [self] 46 49 + [.] 50 50 + [completionGroup] 51 65 + [?] 67 67 + [:] 68 68 + [http_request_operation_completion_[ 70 108 + [(] 109 109 + [)] 110 110 + [,] 111 111 + [self] 113 116 + [.] 117 117 + [completionQueue] 118 132 + [?] 134 134 + [:] 135 135 + [dispatch_get_main_queue] 137 159 + [(] 160 160 + [)] 161 161 + [,] 162 162 + [^] 164 164 + [{] 165 165 +L134 + [failure] 29 35 + [(] 36 36 + [self] 37 40 + [,] 41 41 + [self] 43 46 + [.] 47 47 + [error] 48 52 + [)] 53 53 + [;] 54 54 +L135 + [}] 25 25 + [)] 26 26 + [;] 27 27 +L136 + [}] 21 21 +L137 + [}] 17 17 + [else] 19 22 + [{] 24 24 +L138 + [if] 21 22 + [(] 24 24 + [success] 25 31 + [)] 32 32 + [{] 34 34 +L139 + [dispatch_group_async] 25 44 + [(] 45 45 + [self] 46 49 + [.] 50 50 + [completionGroup] 51 65 + [?] 67 67 + [:] 68 68 + [http_request_operation_completion_[ 70 108 + [(] 109 109 + [)] 110 110 + [,] 111 111 + [self] 113 116 + [.] 117 117 + [completionQueue] 118 132 + [?] 134 134 + [:] 135 135 + [dispatch_get_main_queue] 137 159 + [(] 160 160 + [)] 161 161 + [,] 162 162 + [^] 164 164 + [{] 165 165 +L140 + [success] 29 35 + [(] 36 36 + [self] 37 40 + [,] 41 41 + [responseObject] 43 56 + [)] 57 57 + [;] 58 58 +L141 + [}] 25 25 + [)] 26 26 + [;] 27 27 +L142 + [}] 21 21 +L143 + [}] 17 17 +L144 + [}] 13 13 +L146 + [if] 13 14 + [(] 16 16 + [self] 17 20 + [.] 21 21 + [completionGroup] 22 36 + [)] 37 37 + [{] 39 39 +L147 + [dispatch_group_leave] 17 36 + [(] 37 37 + [self] 38 41 + [.] 42 42 + [completionGroup] 43 57 + [)] 58 58 + [;] 59 59 +L148 + [}] 13 13 +L149 + [}] 9 9 + [)] 10 10 + [;] 11 11 +L150 + [}] 5 5 + [;] 6 6 +L152 + [}] 1 1 +L156 + [-] 1 1 + [(] 3 3 + [void] 4 7 + [)] 8 8 + [pause] 9 13 + [{] 15 15 +L157 + [\[] 5 5 + [super] 6 10 + [pause] 12 16 + [\]] 17 17 + [;] 18 18 +L159 + [u_int64_t] 5 13 + [offset] 15 20 + [=] 22 22 + [0] 24 24 + [;] 25 25 +L160 + [if] 5 6 + [(] 8 8 + [\[] 9 9 + [self] 10 13 + [.] 14 14 + [outputStream] 15 26 + [propertyForKey] 28 41 + [:] 42 42 + [NSStreamFileCurrentOffsetKey] 43 70 + [\]] 71 71 + [)] 72 72 + [{] 74 74 +L161 + [offset] 9 14 + [=] 16 16 + [\[] 18 18 + [(] 19 19 + [NSNumber] 20 27 + [*] 29 29 + [)] 30 30 + [\[] 31 31 + [self] 32 35 + [.] 36 36 + [outputStream] 37 48 + [propertyForKey] 50 63 + [:] 64 64 + [NSStreamFileCurrentOffsetKey] 65 92 + [\]] 93 93 + [unsignedLongLongValue] 95 115 + [\]] 116 116 + [;] 117 117 +L162 + [}] 5 5 + [else] 7 10 + [{] 12 12 +L163 + [offset] 9 14 + [=] 16 16 + [\[] 18 18 + [(] 19 19 + [NSData] 20 25 + [*] 27 27 + [)] 28 28 + [\[] 29 29 + [self] 30 33 + [.] 34 34 + [outputStream] 35 46 + [propertyForKey] 48 61 + [:] 62 62 + [NSStreamDataWrittenToMemoryStreamK[ 63 98 + [\]] 99 99 + [length] 101 106 + [\]] 107 107 + [;] 108 108 +L164 + [}] 5 5 +L166 + [NSMutableURLRequest] 5 23 + [*] 25 25 + [mutableURLRequest] 26 42 + [=] 44 44 + [\[] 46 46 + [self] 47 50 + [.] 51 51 + [request] 52 58 + [mutableCopy] 60 70 + [\]] 71 71 + [;] 72 72 +L167 + [if] 5 6 + [(] 8 8 + [\[] 9 9 + [self] 10 13 + [.] 14 14 + [response] 15 22 + [respondsToSelector] 24 41 + [:] 42 42 + [@selector] 43 51 + [(] 52 52 + [allHeaderFields] 53 67 + [)] 68 68 + [\]] 69 69 + [&&] 71 72 + [\[] 74 74 + [\[] 75 75 + [self] 76 79 + [.] 80 80 + [response] 81 88 + [allHeaderFields] 90 104 + [\]] 105 105 + [valueForKey] 107 117 + [:] 118 118 + [@"ETag"] 119 125 + [\]] 126 126 + [)] 127 127 + [{] 129 129 +L168 + [\[] 9 9 + [mutableURLRequest] 10 26 + [setValue] 28 35 + [:] 36 36 + [\[] 37 37 + [\[] 38 38 + [self] 39 42 + [.] 43 43 + [response] 44 51 + [allHeaderFields] 53 67 + [\]] 68 68 + [valueForKey] 70 80 + [:] 81 81 + [@"ETag"] 82 88 + [\]] 89 89 + [forHTTPHeaderField] 91 108 + [:] 109 109 + [@"If-Range"] 110 120 + [\]] 121 121 + [;] 122 122 +L169 + [}] 5 5 +L170 + [\[] 5 5 + [mutableURLRequest] 6 22 + [setValue] 24 31 + [:] 32 32 + [\[] 33 33 + [NSString] 34 41 + [stringWithFormat] 43 58 + [:] 59 59 + [@"bytes=%llu-"] 60 73 + [,] 74 74 + [offset] 76 81 + [\]] 82 82 + [forHTTPHeaderField] 84 101 + [:] 102 102 + [@"Range"] 103 110 + [\]] 111 111 + [;] 112 112 +L171 + [self] 5 8 + [.] 9 9 + [request] 10 16 + [=] 18 18 + [mutableURLRequest] 20 36 + [;] 37 37 +L172 + [}] 1 1 +L176 + [+] 1 1 + [(] 3 3 + [BOOL] 4 7 + [)] 8 8 + [supportsSecureCoding] 9 28 + [{] 30 30 +L177 + [return] 5 10 + [YES] 12 14 + [;] 15 15 +L178 + [}] 1 1 +L180 + [-] 1 1 + [(] 3 3 + [id] 4 5 + [)] 6 6 + [initWithCoder] 7 19 + [:] 20 20 + [(] 21 21 + [NSCoder] 22 28 + [*] 30 30 + [)] 31 31 + [decoder] 32 38 + [{] 40 40 +L181 + [self] 5 8 + [=] 10 10 + [\[] 12 12 + [super] 13 17 + [initWithCoder] 19 31 + [:] 32 32 + [decoder] 33 39 + [\]] 40 40 + [;] 41 41 +L182 + [if] 5 6 + [(] 8 8 + [!] 9 9 + [self] 10 13 + [)] 14 14 + [{] 16 16 +L183 + [return] 9 14 + [nil] 16 18 + [;] 19 19 +L184 + [}] 5 5 +L186 + [self] 5 8 + [.] 9 9 + [responseSerializer] 10 27 + [=] 29 29 + [\[] 31 31 + [decoder] 32 38 + [decodeObjectOfClass] 40 58 + [:] 59 59 + [\[] 60 60 + [AFHTTPResponseSerializer] 61 84 + [class] 86 90 + [\]] 91 91 + [forKey] 93 98 + [:] 99 99 + [NSStringFromSelector] 100 119 + [(] 120 120 + [@selector] 121 129 + [(] 130 130 + [responseSerializer] 131 148 + [)] 149 149 + [)] 150 150 + [\]] 151 151 + [;] 152 152 +L188 + [return] 5 10 + [self] 12 15 + [;] 16 16 +L189 + [}] 1 1 +L191 + [-] 1 1 + [(] 3 3 + [void] 4 7 + [)] 8 8 + [encodeWithCoder] 9 23 + [:] 24 24 + [(] 25 25 + [NSCoder] 26 32 + [*] 34 34 + [)] 35 35 + [coder] 36 40 + [{] 42 42 +L192 + [\[] 5 5 + [super] 6 10 + [encodeWithCoder] 12 26 + [:] 27 27 + [coder] 28 32 + [\]] 33 33 + [;] 34 34 +L194 + [\[] 5 5 + [coder] 6 10 + [encodeObject] 12 23 + [:] 24 24 + [self] 25 28 + [.] 29 29 + [responseSerializer] 30 47 + [forKey] 49 54 + [:] 55 55 + [NSStringFromSelector] 56 75 + [(] 76 76 + [@selector] 77 85 + [(] 86 86 + [responseSerializer] 87 104 + [)] 105 105 + [)] 106 106 + [\]] 107 107 + [;] 108 108 +L195 + [}] 1 1 +L199 + [-] 1 1 + [(] 3 3 + [id] 4 5 + [)] 6 6 + [copyWithZone] 7 18 + [:] 19 19 + [(] 20 20 + [NSZone] 21 26 + [*] 28 28 + [)] 29 29 + [zone] 30 33 + [{] 35 35 +L200 + [AFHTTPRequestOperation] 5 26 + [*] 28 28 + [operation] 29 37 + [=] 39 39 + [\[] 41 41 + [super] 42 46 + [copyWithZone] 48 59 + [:] 60 60 + [zone] 61 64 + [\]] 65 65 + [;] 66 66 +L202 + [operation] 5 13 + [.] 14 14 + [responseSerializer] 15 32 + [=] 34 34 + [\[] 36 36 + [self] 37 40 + [.] 41 41 + [responseSerializer] 42 59 + [copyWithZone] 61 72 + [:] 73 73 + [zone] 74 77 + [\]] 78 78 + [;] 79 79 +L203 + [operation] 5 13 + [.] 14 14 + [completionQueue] 15 29 + [=] 31 31 + [self] 33 36 + [.] 37 37 + [completionQueue] 38 52 + [;] 53 53 +L204 + [operation] 5 13 + [.] 14 14 + [completionGroup] 15 29 + [=] 31 31 + [self] 33 36 + [.] 37 37 + [completionGroup] 38 52 + [;] 53 53 +L206 + [return] 5 10 + [operation] 12 20 + [;] 21 21 +L207 + [}] 1 1 +L209 + [@end] 1 4 +EOF diff --git a/pmd-objectivec/src/test/resources/net/sourceforge/pmd/cpd/NCClient.m b/pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/unicodeCharInIdent.m similarity index 100% rename from pmd-objectivec/src/test/resources/net/sourceforge/pmd/cpd/NCClient.m rename to pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/unicodeCharInIdent.m diff --git a/pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/unicodeCharInIdent.txt b/pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/unicodeCharInIdent.txt new file mode 100644 index 0000000000..4291015222 --- /dev/null +++ b/pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/unicodeCharInIdent.txt @@ -0,0 +1,14 @@ + [Image] or [Truncated image[ Bcol Ecol +L1 + [@] 1 1 + [import] 2 7 + [UIKit] 9 13 + [;] 14 14 +L4 + [static] 1 6 + [SecCertificateRef] 8 24 + [gNСServerLogonCertificate] 26 50 + [;] 51 51 +L6 + [@end] 1 4 +EOF diff --git a/pmd-objectivec/src/test/resources/net/sourceforge/pmd/cpd/FileWithUTF8EscapeInStringLiteral.m b/pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/unicodeEscapeInString.m similarity index 100% rename from pmd-objectivec/src/test/resources/net/sourceforge/pmd/cpd/FileWithUTF8EscapeInStringLiteral.m rename to pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/unicodeEscapeInString.m diff --git a/pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/unicodeEscapeInString.txt b/pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/unicodeEscapeInString.txt new file mode 100644 index 0000000000..ce059d63f3 --- /dev/null +++ b/pmd-objectivec/src/test/resources/net/sourceforge/pmd/lang/objc/cpd/testdata/unicodeEscapeInString.txt @@ -0,0 +1,52 @@ + [Image] or [Truncated image[ Bcol Ecol +L1 + [@property] 1 9 + [(] 11 11 + [nonatomic] 12 20 + [,] 21 21 + [strong] 23 28 + [)] 29 29 + [UIButton] 31 38 + [*] 40 40 + [copyrightsButton] 41 56 + [;] 57 57 +L3 + [-] 1 1 + [(] 3 3 + [void] 4 7 + [)] 8 8 + [setupCopyrightsButton] 9 29 + [{] 31 31 +L4 + [self] 5 8 + [.] 9 9 + [copyrightsButton] 10 25 + [=] 27 27 + [\[] 29 29 + [\[] 30 30 + [UIButton] 31 38 + [alloc] 40 44 + [\]] 45 45 + [initWithFrame] 47 59 + [:] 60 60 + [CGRectZero] 61 70 + [\]] 71 71 + [;] 72 72 +L5 + [\[] 5 5 + [self] 6 9 + [.] 10 10 + [copyrightsButton] 11 26 + [setTitle] 28 35 + [:] 36 36 + [@"\\u00a9"] 37 45 + [forState] 47 54 + [:] 55 55 + [UIControlStateNormal] 56 75 + [\]] 76 76 + [;] 77 77 +L6 + [}] 1 1 +L8 + [@end] 1 4 +EOF