PositionTesterContextMenuListener.java revision 192ab903887bbb8e7c7b6da5c581573850e30f46
1package android.widget.expandablelistview;
2
3import android.view.ContextMenu;
4import android.view.View;
5import android.view.ContextMenu.ContextMenuInfo;
6import android.view.View.OnCreateContextMenuListener;
7import android.widget.ExpandableListView;
8
9import junit.framework.Assert;
10
11public class PositionTesterContextMenuListener implements OnCreateContextMenuListener {
12
13    private int groupPosition, childPosition;
14
15    private int testType; // as returned by getPackedPositionType
16
17    public void expectGroupContextMenu(int groupPosition) {
18        this.groupPosition = groupPosition;
19        testType = ExpandableListView.PACKED_POSITION_TYPE_GROUP;
20    }
21
22    public void expectChildContextMenu(int groupPosition, int childPosition) {
23        this.groupPosition = groupPosition;
24        this.childPosition = childPosition;
25        testType = ExpandableListView.PACKED_POSITION_TYPE_CHILD;
26    }
27
28    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
29        ExpandableListView.ExpandableListContextMenuInfo elvMenuInfo = (ExpandableListView.ExpandableListContextMenuInfo) menuInfo;
30        long packedPosition = elvMenuInfo.packedPosition;
31
32        int packedPositionType = ExpandableListView.getPackedPositionType(packedPosition);
33        Assert.assertEquals("Wrong packed position type", testType, packedPositionType);
34
35        int packedPositionGroup = ExpandableListView.getPackedPositionGroup(packedPosition);
36        Assert.assertEquals("Wrong group position", groupPosition, packedPositionGroup);
37
38        if (testType == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
39            int packedPositionChild = ExpandableListView.getPackedPositionChild(packedPosition);
40            Assert.assertEquals("Wrong child position", childPosition, packedPositionChild);
41        }
42    }
43}
44