Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Fix version of hashtag autolink conformance

  • Loading branch information...
commit 688433914b309f6bd90a51551ab348e1a56c0161 1 parent cbed6c5
Matt Sanford authored
2  Twitter-text-java.iml
@@ -13,6 +13,7 @@
13 13 <content url="file://$MODULE_DIR$">
14 14 <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
15 15 <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
  16 + <excludeFolder url="file://$MODULE_DIR$/docs" />
16 17 </content>
17 18 <orderEntry type="inheritedJdk" />
18 19 <orderEntry type="sourceFolder" forTests="false" />
@@ -25,6 +26,7 @@
25 26 <SOURCES />
26 27 </library>
27 28 </orderEntry>
  29 + <orderEntry type="library" name="Included Jars" level="project" />
28 30 </component>
29 31 </module>
30 32
12 src/com/twitter/Autolink.java
@@ -42,14 +42,16 @@ public String autoLinkUsernamesAndLists(String text) {
5 src/com/twitter/Regex.java
@@ -42,11 +42,16 @@
42 42 public static final int AUTO_LINK_HASHTAGS_GROUP_TAG = 3;
43 43
44 44 public static final Pattern AUTO_LINK_USERNAMES_OR_LISTS = Pattern.compile("([^a-z0-9_]|^)([@@]+)([a-z0-9_]{1,20})(/[a-z][a-z0-9\\x80-\\xFF-]{0,79})?", Pattern.CASE_INSENSITIVE);
  45 + public static final int AUTO_LINK_USERNAME_OR_LISTS_GROUP_BEFORE = 1;
  46 + public static final int AUTO_LINK_USERNAME_OR_LISTS_GROUP_AT = 2;
  47 + public static final int AUTO_LINK_USERNAME_OR_LISTS_GROUP_USERNAME = 3;
  48 + public static final int AUTO_LINK_USERNAME_OR_LISTS_GROUP_LIST = 4;
45 49
46 50 public static final Pattern VALID_URL = Pattern.compile(VALID_URL_PATTERN_STRING, Pattern.CASE_INSENSITIVE);
47 51 public static final int VALID_URL_GROUP_URL = 3;
48 52
49 53 public static final Pattern EXTRACT_MENTIONS = Pattern.compile("(^|[^a-z0-9_])[@@]([a-z0-9_]{1,20})", Pattern.CASE_INSENSITIVE);
  54 + public static final int EXTRACT_MENTIONS_GROUP_BEFORE = 1;
50 55 public static final int EXTRACT_MENTIONS_GROUP_USERNAME = 2;
51 56
52 57 public static final Pattern EXTRACT_REPLY = Pattern.compile("^(?:[" + com.twitter.regex.Spaces.getCharacterClass() + "])*[@@]([a-z0-9_]{1,20}).*", Pattern.CASE_INSENSITIVE);
14 tests/com/twitter/AutolinkTest.java
@@ -13,21 +13,21 @@ public void setUp() {
13 13 }
14 14
15 15 public void testAutoLinkHashtagAtTheEnd() {
16   - String tweet = "This has a #hastag";
17   - String expected = "This has a <a href=\"http://twitter.com/search?q=%23hastag\">#hastag</a>";
  16 + String tweet = "This has a #hashtag";
  17 + String expected = "This has a <a href=\"http://twitter.com/search?q=%23hashtag\" title=\"#hashtag\" class=\"tweet-url hashtag\">#hashtag</a>";
18 18 assertAutolink(expected, linker.autoLinkHashtags(tweet));
19 19 }
20 20
21 21 public void testAutoLinkHashtagAtTheStart() {
22   - String tweet = "#hastag at the start";
23   - String expected = "<a href=\"http://twitter.com/search?q=%23hastag\">#hastag</a> at the start";
  22 + String tweet = "#hashtag at the start";
  23 + String expected = "<a href=\"http://twitter.com/search?q=%23hashtag\" title=\"#hashtag\" class=\"tweet-url hashtag\">#hashtag</a> at the start";
24 24 assertAutolink(expected, linker.autoLinkHashtags(tweet));
25 25 }
26 26
27 27 public void testAutoLinkMultipleHashtags() {
28   - String tweet = "#hastag on both #ends";
29   - String expected = "<a href=\"http://twitter.com/search?q=%23hastag\">#hastag</a> on both " +
30   - "<a href=\"http://twitter.com/search?q=%23ends\">#ends</a>";
  28 + String tweet = "#hashtag on both #ends";
  29 + String expected = "<a href=\"http://twitter.com/search?q=%23hashtag\" title=\"#hashtag\" class=\"tweet-url hashtag\">#hashtag</a> on both " +
  30 + "<a href=\"http://twitter.com/search?q=%23ends\" title=\"#ends\" class=\"tweet-url hashtag\">#ends</a>";
31 31 assertAutolink(expected, linker.autoLinkHashtags(tweet));
32 32 }
33 33
118 tests/com/twitter/ConformanceTest.java
... ... @@ -0,0 +1,118 @@
  1 +
  2 +package com.twitter;
  3 +
  4 +import java.util.regex.*;
  5 +import java.util.Map;
  6 +import java.util.List;
  7 +import java.io.File;
  8 +import java.io.FileNotFoundException;
  9 +
  10 +import junit.framework.TestCase;
  11 +import com.twitter.*;
  12 +import org.ho.yaml.Yaml;
  13 +
  14 +public class ConformanceTest extends TestCase {
  15 + private static final String KEY_DESCRIPTION = "description";
  16 + private static final String KEY_INPUT = "text";
  17 + private static final String KEY_EXPECTED_OUTPUT = "expected";
  18 + private File conformanceDir;
  19 + private Extractor extractor = new Extractor();
  20 + private Autolink linker = new Autolink();
  21 +
  22 + public void setUp() {
  23 + // TODO: submodule.
  24 + conformanceDir = new File("../twitter-text-conformance");
  25 + assertTrue("Conformance directory " + conformanceDir + " is not a directory.", conformanceDir.isDirectory());
  26 +
  27 + assertNotNull("No extractor configured", extractor);
  28 + assertNotNull("No autolinker configured", linker);
  29 + }
  30 +
  31 + public void testMentionsExtractor() throws Exception {
  32 + File yamlFile = new File(conformanceDir, "extract.yml");
  33 + List testCases = loadConformanceData(yamlFile, "mentions");
  34 + for (Map testCase : (List<Map>)testCases) {
  35 + assertEquals((String)testCase.get(KEY_DESCRIPTION),
  36 + (List)testCase.get(KEY_EXPECTED_OUTPUT),
  37 + extractor.extractMentionedScreennames((String)testCase.get(KEY_INPUT)));
  38 + }
  39 + }
  40 +
  41 + public void testReplyExtractor() throws Exception {
  42 + File yamlFile = new File(conformanceDir, "extract.yml");
  43 + List testCases = loadConformanceData(yamlFile, "replies");
  44 + for (Map testCase : (List<Map>)testCases) {
  45 + assertEquals((String)testCase.get(KEY_DESCRIPTION),
  46 + (String)testCase.get(KEY_EXPECTED_OUTPUT),
  47 + extractor.extractReplyScreenname((String)testCase.get(KEY_INPUT)));
  48 + }
  49 + }
  50 +
  51 + public void testHashtagsExtractor() throws Exception {
  52 + File yamlFile = new File(conformanceDir, "extract.yml");
  53 + List testCases = loadConformanceData(yamlFile, "hashtags");
  54 + for (Map testCase : (List<Map>)testCases) {
  55 + assertEquals((String)testCase.get(KEY_DESCRIPTION),
  56 + (List)testCase.get(KEY_EXPECTED_OUTPUT),
  57 + extractor.extractHashtags((String)testCase.get(KEY_INPUT)));
  58 + }
  59 + }
  60 +
  61 +
  62 + public void testURLsExtractor() throws Exception {
  63 + File yamlFile = new File(conformanceDir, "extract.yml");
  64 + List testCases = loadConformanceData(yamlFile, "urls");
  65 + for (Map testCase : (List<Map>)testCases) {
  66 + assertEquals((String)testCase.get(KEY_DESCRIPTION),
  67 + (List)testCase.get(KEY_EXPECTED_OUTPUT),
  68 + extractor.extractURLs((String)testCase.get(KEY_INPUT)));
  69 + }
  70 + }
  71 +
  72 +
  73 + public void testUsernameAutolinking() throws Exception {
  74 + File yamlFile = new File(conformanceDir, "autolink.yml");
  75 + List testCases = loadConformanceData(yamlFile, "usernames");
  76 + for (Map testCase : (List<Map>)testCases) {
  77 + assertEquals((String)testCase.get(KEY_DESCRIPTION),
  78 + (String)testCase.get(KEY_EXPECTED_OUTPUT),
  79 + linker.autoLinkUsernamesAndLists((String)testCase.get(KEY_INPUT)));
  80 + }
  81 + }
  82 +
  83 + public void testListAutolinking() throws Exception {
  84 + File yamlFile = new File(conformanceDir, "autolink.yml");
  85 + List testCases = loadConformanceData(yamlFile, "lists");
  86 + for (Map testCase : (List<Map>)testCases) {
  87 + assertEquals((String)testCase.get(KEY_DESCRIPTION),
  88 + (String)testCase.get(KEY_EXPECTED_OUTPUT),
  89 + linker.autoLinkUsernamesAndLists((String)testCase.get(KEY_INPUT)));
  90 + }
  91 + }
  92 +
  93 + public void testHashtagAutolinking() throws Exception {
  94 + File yamlFile = new File(conformanceDir, "autolink.yml");
  95 + List testCases = loadConformanceData(yamlFile, "hashtags");
  96 + for (Map testCase : (List<Map>)testCases) {
  97 + assertEquals((String)testCase.get(KEY_DESCRIPTION),
  98 + (String)testCase.get(KEY_EXPECTED_OUTPUT),
  99 + linker.autoLinkHashtags((String)testCase.get(KEY_INPUT)));
  100 + }
  101 + }
  102 +
  103 + public void testURLAutolinking() throws Exception {
  104 + File yamlFile = new File(conformanceDir, "autolink.yml");
  105 + List testCases = loadConformanceData(yamlFile, "urls");
  106 + for (Map testCase : (List<Map>)testCases) {
  107 + assertEquals((String)testCase.get(KEY_DESCRIPTION),
  108 + (String)testCase.get(KEY_EXPECTED_OUTPUT),
  109 + linker.autoLinkURLs((String)testCase.get(KEY_INPUT)));
  110 + }
  111 + }
  112 +
  113 + private List loadConformanceData(File yamlFile, String testType) throws FileNotFoundException {
  114 + Map fullConfig = (Map)Yaml.load(yamlFile);
  115 + Map testConfig = (Map)fullConfig.get("tests");
  116 + return (List)testConfig.get(testType);
  117 + }
  118 +}
104 twitter-text-java.ipr
@@ -240,101 +240,15 @@
240 240 <history />
241 241 <find-history />
242 242 </component>
243   - <component name="masterDetails">
244   - <option name="states">
245   - <map>
246   - <entry key="Copyright.UI">
247   - <value>
248   - <UIState>
249   - <option name="proportions">
250   - <SplitterProportionsDataImpl />
251   - </option>
252   - </UIState>
253   - </value>
254   - </entry>
255   - <entry key="Errors.UI">
256   - <value>
257   - <UIState>
258   - <option name="proportions">
259   - <SplitterProportionsDataImpl />
260   - </option>
261   - </UIState>
262   - </value>
263   - </entry>
264   - <entry key="ProjectJDKs.UI">
265   - <value>
266   - <UIState>
267   - <option name="proportions">
268   - <SplitterProportionsDataImpl>
269   - <option name="proportions">
270   - <list>
271   - <option value="0.2" />
272   - </list>
273   - </option>
274   - </SplitterProportionsDataImpl>
275   - </option>
276   - <option name="lastEditedConfigurable" value="1.6" />
277   - </UIState>
278   - </value>
279   - </entry>
280   - <entry key="ScopeChooserConfigurable.UI">
281   - <value>
282   - <UIState>
283   - <option name="proportions">
284   - <SplitterProportionsDataImpl />
285   - </option>
286   - </UIState>
287   - </value>
288   - </entry>
289   - </map>
290   - </option>
291   - <option name="myStates">
292   - <map>
293   - <entry key="Copyright.UI">
294   - <value>
295   - <UIState>
296   - <option name="proportions">
297   - <SplitterProportionsDataImpl />
298   - </option>
299   - </UIState>
300   - </value>
301   - </entry>
302   - <entry key="Errors.UI">
303   - <value>
304   - <UIState>
305   - <option name="proportions">
306   - <SplitterProportionsDataImpl />
307   - </option>
308   - </UIState>
309   - </value>
310   - </entry>
311   - <entry key="ProjectJDKs.UI">
312   - <value>
313   - <UIState>
314   - <option name="proportions">
315   - <SplitterProportionsDataImpl>
316   - <option name="proportions">
317   - <list>
318   - <option value="0.2" />
319   - </list>
320   - </option>
321   - </SplitterProportionsDataImpl>
322   - </option>
323   - <option name="lastEditedConfigurable" value="1.6" />
324   - </UIState>
325   - </value>
326   - </entry>
327   - <entry key="ScopeChooserConfigurable.UI">
328   - <value>
329   - <UIState>
330   - <option name="proportions">
331   - <SplitterProportionsDataImpl />
332   - </option>
333   - </UIState>
334   - </value>
335   - </entry>
336   - </map>
337   - </option>
  243 + <component name="libraryTable">
  244 + <library name="Included Jars">
  245 + <CLASSES>
  246 + <root url="file://$PROJECT_DIR$/jars" />
  247 + </CLASSES>
  248 + <JAVADOC />
  249 + <SOURCES />
  250 + <jarDirectory url="file://$PROJECT_DIR$/jars" recursive="false" />
  251 + </library>
338 252 </component>
339 253 </project>
340 254
207 twitter-text-java.iws
@@ -7,14 +7,15 @@
7 7 <component name="ChangeListManager">
8 8 <list default="true" name="Default" comment="">
9 9 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/twitter-text-java.iws" afterPath="$PROJECT_DIR$/twitter-text-java.iws" />
10   - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/twitter/regex/Spaces.java" afterPath="$PROJECT_DIR$/src/com/twitter/regex/Spaces.java" />
11   - <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/tests/com/twitter/AutolinkTest.java" />
  10 + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tests/com/twitter/AutolinkTest.java" afterPath="$PROJECT_DIR$/tests/com/twitter/AutolinkTest.java" />
  11 + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/tests/com/twitter/ConformanceTest.java" />
  12 + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Twitter-text-java.iml" afterPath="$PROJECT_DIR$/Twitter-text-java.iml" />
12 13 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/twitter/Autolink.java" afterPath="$PROJECT_DIR$/src/com/twitter/Autolink.java" />
13 14 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/twitter/Regex.java" afterPath="$PROJECT_DIR$/src/com/twitter/Regex.java" />
14 15 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/twitter-text-java.ipr" afterPath="$PROJECT_DIR$/twitter-text-java.ipr" />
15 16 </list>
16   - <ignored path=".idea/workspace.xml" />
17 17 <ignored path="twitter-text-java.iws" />
  18 + <ignored path=".idea/workspace.xml" />
18 19 </component>
19 20 <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
20 21 <component name="Commander">
@@ -70,47 +71,31 @@
70 71 </component>
71 72 <component name="FileEditorManager">
72 73 <leaf>
73   - <file leaf-file-name="ExtractorTest.java" pinned="false" current="false" current-in-tab="false">
74   - <entry file="file://$PROJECT_DIR$/tests/com/twitter/ExtractorTest.java">
75   - <provider selected="true" editor-type-id="text-editor">
76   - <state line="88" column="4" selection-start="3273" selection-end="3273" vertical-scroll-proportion="0.0">
77   - <folding />
78   - </state>
79   - </provider>
80   - </entry>
81   - </file>
82   - <file leaf-file-name="RegexTest.java" pinned="false" current="false" current-in-tab="false">
83   - <entry file="file://$PROJECT_DIR$/tests/com/twitter/RegexTest.java">
  74 + <file leaf-file-name="Autolink.java" pinned="false" current="false" current-in-tab="false">
  75 + <entry file="file://$PROJECT_DIR$/src/com/twitter/Autolink.java">
84 76 <provider selected="true" editor-type-id="text-editor">
85   - <state line="38" column="43" selection-start="1297" selection-end="1297" vertical-scroll-proportion="0.0">
  77 + <state line="42" column="39" selection-start="1412" selection-end="1412" vertical-scroll-proportion="0.0">
86 78 <folding />
87 79 </state>
88 80 </provider>
89 81 </entry>
90 82 </file>
91   - <file leaf-file-name="Extractor.java" pinned="false" current="false" current-in-tab="false">
92   - <entry file="file://$PROJECT_DIR$/src/com/twitter/Extractor.java">
  83 + <file leaf-file-name="AutolinkTest.java" pinned="false" current="false" current-in-tab="false">
  84 + <entry file="file://$PROJECT_DIR$/tests/com/twitter/AutolinkTest.java">
93 85 <provider selected="true" editor-type-id="text-editor">
94   - <state line="15" column="0" selection-start="238" selection-end="238" vertical-scroll-proportion="0.0">
  86 + <state line="31" column="3" selection-start="1262" selection-end="1262" vertical-scroll-proportion="0.0">
95 87 <folding />
96 88 </state>
97 89 </provider>
98 90 </entry>
99 91 </file>
100   - <file leaf-file-name="Autolink.java" pinned="false" current="true" current-in-tab="true">
101   - <entry file="file://$PROJECT_DIR$/src/com/twitter/Autolink.java">
  92 + <file leaf-file-name="ConformanceTest.java" pinned="false" current="true" current-in-tab="true">
  93 + <entry file="file://$PROJECT_DIR$/tests/com/twitter/ConformanceTest.java">
102 94 <provider selected="true" editor-type-id="text-editor">
103   - <state line="40" column="3" selection-start="1371" selection-end="1371" vertical-scroll-proportion="0.41034484">
104   - <folding />
105   - </state>
106   - </provider>
107   - </entry>
108   - </file>
109   - <file leaf-file-name="AutolinkTest.java" pinned="false" current="false" current-in-tab="false">
110   - <entry file="file://$PROJECT_DIR$/tests/com/twitter/AutolinkTest.java">
111   - <provider selected="true" editor-type-id="text-editor">
112   - <state line="29" column="19" selection-start="953" selection-end="953" vertical-scroll-proportion="0.0">
113   - <folding />
  95 + <state line="86" column="57" selection-start="3425" selection-end="3425" vertical-scroll-proportion="0.48505747">
  96 + <folding>
  97 + <element signature="imports" expanded="true" />
  98 + </folding>
114 99 </state>
115 100 </provider>
116 101 </entry>
@@ -118,7 +103,7 @@
118 103 <file leaf-file-name="Regex.java" pinned="false" current="false" current-in-tab="false">
119 104 <entry file="file://$PROJECT_DIR$/src/com/twitter/Regex.java">
120 105 <provider selected="true" editor-type-id="text-editor">
121   - <state line="40" column="60" selection-start="2323" selection-end="2323" vertical-scroll-proportion="0.0">
  106 + <state line="59" column="59" selection-start="3566" selection-end="3566" vertical-scroll-proportion="0.0">
122 107 <folding />
123 108 </state>
124 109 </provider>
@@ -238,10 +223,13 @@
238 223 </navigator>
239 224 </component>
240 225 <component name="PropertiesComponent">
  226 + <property name="project.structure.proportion" value="0.0" />
  227 + <property name="project.structure.last.edited" value="Modules" />
241 228 <property name="MemberChooser.copyJavadoc" value="false" />
242 229 <property name="GoToClass.includeLibraries" value="false" />
243   - <property name="MemberChooser.showClasses" value="true" />
244 230 <property name="dynamic.classpath" value="false" />
  231 + <property name="MemberChooser.showClasses" value="true" />
  232 + <property name="project.structure.side.proportion" value="0.0" />
245 233 <property name="MemberChooser.sorted" value="false" />
246 234 <property name="GoToFile.includeJavaFiles" value="false" />
247 235 <property name="GoToClass.toSaveIncludeLibraries" value="false" />
@@ -348,22 +336,6 @@
348 336 <module name="" />
349 337 <envs />
350 338 </configuration>
351   - <configuration default="true" type="TestUnitRunConfigurationType" factoryName="Ruby test">
352   - <module name="" />
353   - <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e STDOUT.sync=true;STDERR.sync=true;load($0=ARGV.shift)" />
354   - <RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
355   - <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
356   - <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
357   - <RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
358   - <envs />
359   - <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
360   - <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
361   - <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_CLASS_NAME" VALUE="" />
362   - <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
363   - <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
364   - <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
365   - <RTEST_RUN_CONFIG_SETTINGS_ID NAME="INHERITANCE_CHECK_DISABLED" VALUE="false" />
366   - </configuration>
367 339 <configuration default="true" type="RSpecRunConfigurationType" factoryName="RSpec">
368 340 <module name="" />
369 341 <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e STDOUT.sync=true;STDERR.sync=true;load($0=ARGV.shift)" />
@@ -382,6 +354,22 @@
382 354 <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUN_SPECS_SEPARATELY" VALUE="false" />
383 355 <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
384 356 </configuration>
  357 + <configuration default="true" type="TestUnitRunConfigurationType" factoryName="Ruby test">
  358 + <module name="" />
  359 + <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e STDOUT.sync=true;STDERR.sync=true;load($0=ARGV.shift)" />
  360 + <RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
  361 + <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
  362 + <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
  363 + <RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
  364 + <envs />
  365 + <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
  366 + <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
  367 + <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_CLASS_NAME" VALUE="" />
  368 + <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
  369 + <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
  370 + <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
  371 + <RTEST_RUN_CONFIG_SETTINGS_ID NAME="INHERITANCE_CHECK_DISABLED" VALUE="false" />
  372 + </configuration>
385 373 <list size="1">
386 374 <item index="0" class="java.lang.String" itemvalue="JUnit.com.twitter in Twitter-text-java" />
387 375 </list>
@@ -487,48 +475,153 @@
487 475 <option name="FILTER_TARGETS" value="false" />
488 476 </component>
489 477 <component name="editorHistoryManager">
490   - <entry file="file://$PROJECT_DIR$/tests/com/twitter/RegexTest.java">
  478 + <entry file="file://$PROJECT_DIR$/tests/com/twitter/ExtractorTest.java">
491 479 <provider selected="true" editor-type-id="text-editor">
492   - <state line="38" column="43" selection-start="1297" selection-end="1297" vertical-scroll-proportion="0.0">
  480 + <state line="88" column="4" selection-start="3273" selection-end="3273" vertical-scroll-proportion="0.0">
493 481 <folding />
494 482 </state>
495 483 </provider>
496 484 </entry>
497   - <entry file="file://$PROJECT_DIR$/tests/com/twitter/ExtractorTest.java">
  485 + <entry file="file://$PROJECT_DIR$/tests/com/twitter/RegexTest.java">
498 486 <provider selected="true" editor-type-id="text-editor">
499   - <state line="88" column="4" selection-start="3273" selection-end="3273" vertical-scroll-proportion="0.0">
  487 + <state line="7" column="13" selection-start="118" selection-end="118" vertical-scroll-proportion="0.0">
500 488 <folding />
501 489 </state>
502 490 </provider>
503 491 </entry>
504 492 <entry file="file://$PROJECT_DIR$/src/com/twitter/Extractor.java">
505 493 <provider selected="true" editor-type-id="text-editor">
506   - <state line="15" column="0" selection-start="238" selection-end="238" vertical-scroll-proportion="0.0">
  494 + <state line="45" column="47" selection-start="944" selection-end="962" vertical-scroll-proportion="0.0">
507 495 <folding />
508 496 </state>
509 497 </provider>
510 498 </entry>
511 499 <entry file="file://$PROJECT_DIR$/src/com/twitter/Regex.java">
512 500 <provider selected="true" editor-type-id="text-editor">
513   - <state line="40" column="60" selection-start="2323" selection-end="2323" vertical-scroll-proportion="0.0">
  501 + <state line="59" column="59" selection-start="3566" selection-end="3566" vertical-scroll-proportion="0.0">
514 502 <folding />
515 503 </state>
516 504 </provider>
517 505 </entry>
518 506 <entry file="file://$PROJECT_DIR$/tests/com/twitter/AutolinkTest.java">
519 507 <provider selected="true" editor-type-id="text-editor">
520   - <state line="29" column="19" selection-start="953" selection-end="953" vertical-scroll-proportion="0.0">
  508 + <state line="31" column="3" selection-start="1262" selection-end="1262" vertical-scroll-proportion="0.0">
521 509 <folding />
522 510 </state>
523 511 </provider>
524 512 </entry>
525 513 <entry file="file://$PROJECT_DIR$/src/com/twitter/Autolink.java">
526 514 <provider selected="true" editor-type-id="text-editor">
527   - <state line="40" column="3" selection-start="1371" selection-end="1371" vertical-scroll-proportion="0.41034484">
  515 + <state line="42" column="39" selection-start="1412" selection-end="1412" vertical-scroll-proportion="0.0">
528 516 <folding />
529 517 </state>
530 518 </provider>
531 519 </entry>
  520 + <entry file="file://$PROJECT_DIR$/tests/com/twitter/ConformanceTest.java">
  521 + <provider selected="true" editor-type-id="text-editor">
  522 + <state line="86" column="57" selection-start="3425" selection-end="3425" vertical-scroll-proportion="0.48505747">
  523 + <folding>
  524 + <element signature="imports" expanded="true" />
  525 + </folding>
  526 + </state>
  527 + </provider>
  528 + </entry>
  529 + </component>
  530 + <component name="masterDetails">
  531 + <option name="states">
  532 + <map>
  533 + <entry key="Copyright.UI">
  534 + <value>
  535 + <UIState>
  536 + <option name="proportions">
  537 + <SplitterProportionsDataImpl />
  538 + </option>
  539 + </UIState>
  540 + </value>
  541 + </entry>
  542 + <entry key="Errors.UI">
  543 + <value>
  544 + <UIState>
  545 + <option name="proportions">
  546 + <SplitterProportionsDataImpl />
  547 + </option>
  548 + </UIState>
  549 + </value>
  550 + </entry>
  551 + <entry key="ProjectJDKs.UI">
  552 + <value>
  553 + <UIState>
  554 + <option name="proportions">
  555 + <SplitterProportionsDataImpl>
  556 + <option name="proportions">
  557 + <list>
  558 + <option value="0.2" />
  559 + </list>
  560 + </option>
  561 + </SplitterProportionsDataImpl>
  562 + </option>
  563 + <option name="lastEditedConfigurable" value="1.6" />
  564 + </UIState>
  565 + </value>
  566 + </entry>
  567 + <entry key="ScopeChooserConfigurable.UI">
  568 + <value>
  569 + <UIState>
  570 + <option name="proportions">
  571 + <SplitterProportionsDataImpl />
  572 + </option>
  573 + </UIState>
  574 + </value>
  575 + </entry>
  576 + </map>
  577 + </option>
  578 + <option name="myStates">
  579 + <map>
  580 + <entry key="Copyright.UI">
  581 + <value>
  582 + <UIState>
  583 + <option name="proportions">
  584 + <SplitterProportionsDataImpl />
  585 + </option>
  586 + </UIState>
  587 + </value>
  588 + </entry>
  589 + <entry key="Errors.UI">
  590 + <value>
  591 + <UIState>
  592 + <option name="proportions">
  593 + <SplitterProportionsDataImpl />
  594 + </option>
  595 + </UIState>
  596 + </value>
  597 + </entry>
  598 + <entry key="ProjectJDKs.UI">
  599 + <value>
  600 + <UIState>
  601 + <option name="proportions">
  602 + <SplitterProportionsDataImpl>
  603 + <option name="proportions">
  604 + <list>
  605 + <option value="0.2" />
  606 + </list>
  607 + </option>
  608 + </SplitterProportionsDataImpl>
  609 + </option>
  610 + <option name="lastEditedConfigurable" value="1.6" />
  611 + </UIState>
  612 + </value>
  613 + </entry>
  614 + <entry key="ScopeChooserConfigurable.UI">
  615 + <value>
  616 + <UIState>
  617 + <option name="proportions">
  618 + <SplitterProportionsDataImpl />
  619 + </option>
  620 + </UIState>
  621 + </value>
  622 + </entry>
  623 + </map>
  624 + </option>
532 625 </component>
533 626 </project>
534 627

0 comments on commit 6884339

Please sign in to comment.
Something went wrong with that request. Please try again.