patch: extend user name matching pattern, add tests

This commit is contained in:
Nadya Zabrodina
2017-10-26 15:24:01 +03:00
parent f22ba5db34
commit 136f18266e
4 changed files with 67 additions and 1 deletions
@@ -0,0 +1,27 @@
From d48bebc211cc216aaa78bdf25d7f0b0143d6333b Mon Sep 17 00:00:00 2001
From: D D-D <aaaa@gmail.com>
Date: Wed, 12 Oct 2016 19:03:51 -0700
Subject: [PATCH 1/5] Subject line
---
mode change 100755 => 100644 l.php
diff --git a/l.php b/l.php
old mode 100755
new mode 100644
diff --git a/community/FileDropHandler.java b/community/FileDropHandler.java
--- a/community/FileDropHandler.java
+++ b/community/FileDropHandler.java
@@ -1,9 +1,11 @@
package com.intellij.openapi.fileEditor.impl.text;
import com.intellij.ide.dnd.FileCopyPasteUtil;
+import com.intellij.openapi.editor.CustomFileDropHandler;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.EditorDropHandler;
+import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.fileEditor.*;
import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx;
import com.intellij.openapi.fileEditor.impl.EditorWindow;
@@ -0,0 +1,27 @@
From d48bebc211cc216aaa78bdf25d7f0b0143d6333b Mon Sep 17 00:00:00 2001
From: very long author-surname <aaaa@gmail.com>
Date: Wed, 12 Oct 2016 19:03:51 -0700
Subject: [PATCH 1/5] Subject line
---
mode change 100755 => 100644 l.php
diff --git a/l.php b/l.php
old mode 100755
new mode 100644
diff --git a/community/FileDropHandler.java b/community/FileDropHandler.java
--- a/community/FileDropHandler.java
+++ b/community/FileDropHandler.java
@@ -1,9 +1,11 @@
package com.intellij.openapi.fileEditor.impl.text;
import com.intellij.ide.dnd.FileCopyPasteUtil;
+import com.intellij.openapi.editor.CustomFileDropHandler;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.EditorDropHandler;
+import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.fileEditor.*;
import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx;
import com.intellij.openapi.fileEditor.impl.EditorWindow;
@@ -27,6 +27,8 @@ import java.io.File
class PatchReaderTest : PlatformTestCase() {
private val author = VcsUserImpl("D D", "aaaa@gmail.com")
private val doubleSurname = VcsUserImpl("D D-D", "aaaa@gmail.com")
private val longName = VcsUserImpl("very long author-surname", "aaaa@gmail.com")
private val baseRevision = "d48bebc211cc216aaa78bdf25d7f0b0143d6333b"
private val subjectLine = "Subject line"
@@ -85,6 +87,16 @@ class PatchReaderTest : PlatformTestCase() {
TestCase.assertEquals(PatchFileHeaderInfo(subjectLine, author, baseRevision), read().patchFileInfo)
}
@Throws(Exception::class)
fun testPatchHeaderWithDoubleSurname() {
TestCase.assertEquals(PatchFileHeaderInfo(subjectLine, doubleSurname, baseRevision), read().patchFileInfo)
}
@Throws(Exception::class)
fun testPatchHeaderWithLongName() {
TestCase.assertEquals(PatchFileHeaderInfo(subjectLine, longName, baseRevision), read().patchFileInfo)
}
private fun read(): PatchReader {
val testDataPath = PlatformTestUtil.getPlatformTestDataPath() + "diff/patchReader/" + getTestName(true)
PsiTestUtil.createTestProjectStructure(myProject, myModule, testDataPath, PlatformTestCase.myFilesToDelete)
@@ -29,7 +29,7 @@ import static com.intellij.openapi.diff.impl.patch.PatchReader.HASH_PATTERN;
public class PatchFileHeaderParser {
@NonNls private static final Pattern ourBaseRevisionPattern = Pattern.compile("From\\s+(" + HASH_PATTERN + ")\\s+.*");
@NonNls private static final Pattern ourAuthorPattern = Pattern.compile("From:\\s+(\\w+[\\W_]\\w+)\\s*(?:<(.*)>\\s*)?");
@NonNls private static final Pattern ourAuthorPattern = Pattern.compile("From:\\s+(.*?)\\s*(?:<(.*)>\\s*)?");
@NonNls private static final Pattern ourSubjectPattern = Pattern.compile("Subject:(?:\\s+\\[PATCH.*])?\\s*(.+)");
@NonNls private static final Pattern ourHeaderEndMarker = Pattern.compile("---\\s*");