blob: 3c0805a3491411658764c6ecb382846429e82b4a [file] [log] [blame]
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Eclipse Public License, Version 1.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.eclipse.org/org/documents/epl-v10.php
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.ide.eclipse.adt.internal.editors;
import org.eclipse.swt.graphics.Point;
import junit.framework.TestCase;
@SuppressWarnings("javadoc")
public class AndroidDoubleClickStrategyTest extends TestCase {
public void test_getWord_plain() throws Exception {
checkWord("^foo", "[foo]");
checkWord("'fo^o'", "'[foo]'");
checkWord("\"foo^\"", "\"[foo]\"");
}
public void test_getWord_resources() throws Exception {
checkWord("'@and^roid:string/ok'", "'[@android:string/ok]'");
checkWord("'@android^:string/ok'", "'[@android:string/ok]'");
checkWord("'^@android:string/ok'", "'[@android:string/ok]'");
checkWord("'@android:^string/ok'", "'[@android:string/ok]'");
checkWord("'@android:string^/ok'", "'[@android:string/ok]'");
checkWord("'@android:string/^ok'", "'@android:string/[ok]'");
checkWord("'@android:string/o^k'", "'@android:string/[ok]'");
checkWord("'@android:string/ok^'", "'@android:string/[ok]'");
checkWord("'@string/ok^'", "'@string/[ok]'");
checkWord("'@str^ing/ok'", "'[@string/ok]'");
}
public void test_getWord_classnames() throws Exception {
checkWord("\"co^m.example.templatetest1\"", "\"[com.example.templatetest1]\"");
checkWord("\"com.exam^ple.templatetest1\"", "\"[com.example.templatetest1]\"");
checkWord("\"com.example^.templatetest1\"", "\"[com.example.templatetest1]\"");
checkWord("\"com.example.templat^etest1\"", "\"com.example.[templatetest1]\"");
checkWord("\"com.example.^templatetest1\"", "\"com.example.[templatetest1]\"");
checkWord("\"com.example.templatetest1^\"", "\"com.example.[templatetest1]\"");
checkWord("\"...^\"", "\"[...]\"");
checkWord("\"..^.\"", "\"[...]\"");
}
private void checkWord(String before, String expected) throws Exception {
AndroidDoubleClickStrategy strategy = new AndroidDoubleClickStrategy();
int cursor = before.indexOf('^');
assertTrue("Must set cursor position with ^ in " + before, cursor != -1);
before = before.substring(0, cursor) + before.substring(cursor + 1);
assertEquals(-1, before.indexOf('^'));
assertEquals(-1, before.indexOf('['));
assertEquals(-1, before.indexOf(']'));
Point positions = strategy.getWord(before, cursor);
assertNotNull(positions);
assertTrue(positions.y >= positions.x);
String after = before.substring(0, positions.x) + '[' +
before.substring(positions.x, positions.y) + ']' +
before.substring(positions.y);
assertEquals(expected, after);
}
}