AutoComplete icon indicating copy to clipboard operation
AutoComplete copied to clipboard

AbstractCompletionProvider.removeCompletion() removes wrong completion

Open tttwang23 opened this issue 9 years ago • 0 comments

Test case:

    @Test
    public void testCompletionRemoval()
    {
        final DefaultCompletionProvider provider1 =
            new DefaultCompletionProvider();
        final ArrayList<Completion> box1 = new ArrayList<Completion>();
        final Completion c1 = new BasicCompletion(provider1, "BAAA");
        final Completion c2 = new BasicCompletion(provider1, "beta");
        final Completion c3 = new ShorthandCompletion(provider1, "BETA", "BETA");
        box1.add(c1);
        box1.add(c2);
        box1.add(c3);
        provider1.addCompletions(box1);
        final DefaultCompletionProvider provider2 =
            new DefaultCompletionProvider();
        final ArrayList<Completion> box2 = new ArrayList<Completion>();
        final Completion c4 = new ShorthandCompletion(provider2, "alpha", "alpha");
        final Completion c5 = new BasicCompletion(provider2, "ALPHA");
        final Completion c6 = new BasicCompletion(provider2, "ZZZZZ");
        box2.add(c4);
        box2.add(c5);
        box2.add(c6);
        provider2.addCompletions(box2);
        // Check we can remove the "BETA" completion.
        Assert.assertTrue(provider1.removeCompletion(c3));
        // Check that the "beta" completion should remain.
        List<Completion> betaList = provider1.getCompletionByInputText("beta");
        Assert.assertEquals(1, betaList.size());
        for (Completion comp : betaList)
        {
            Assert.assertEquals("beta", comp.getInputText());
        }
        // Check we can remove the "ALPHA" completion.
        Assert.assertTrue(provider2.removeCompletion(c5));
        // Check that the "alpha" completion should remain.
        List<Completion> alphaList = provider2.getCompletionByInputText("alpha");
        Assert.assertEquals(1, alphaList.size());
        for (Completion comp : alphaList)
        {
            Assert.assertEquals("alpha", comp.getInputText());
        }
    }

tttwang23 avatar Nov 15 '16 17:11 tttwang23