17817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas/* 27817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * Copyright (C) 2017 The Android Open Source Project 37817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * 47817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * Licensed under the Apache License, Version 2.0 (the "License"); 57817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * you may not use this file except in compliance with the License. 67817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * You may obtain a copy of the License at 77817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * 87817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * http://www.apache.org/licenses/LICENSE-2.0 97817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * 107817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * Unless required by applicable law or agreed to in writing, software 117817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * distributed under the License is distributed on an "AS IS" BASIS, 127817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * See the License for the specific language governing permissions and 147817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * limitations under the License. 157817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas */ 167817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas 177817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikaspackage android.support.v7.widget; 187817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas 197817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikasimport android.content.Context; 207817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikasimport android.graphics.Canvas; 217817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikasimport android.support.test.InstrumentationRegistry; 227817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikasimport android.support.test.filters.SmallTest; 237817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikasimport android.support.test.runner.AndroidJUnit4; 247817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikasimport android.support.v7.recyclerview.test.R; 257817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikasimport android.view.ContextThemeWrapper; 267817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikasimport android.view.ViewGroup; 277817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikasimport android.widget.TextView; 287817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas 297817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikasimport org.junit.Test; 307817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikasimport org.junit.runner.RunWith; 317817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas 327817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas/** 337817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas * Tests for {@link DividerItemDecoration}. 347817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas */ 357817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas@SmallTest 367817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas@RunWith(AndroidJUnit4.class) 377817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikaspublic class DividerItemDecorationTest { 387817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas private static final String[] STRINGS = {"Foo", "Bar", "Great"}; 397817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas 407817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas @Test 417817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas public void testNullListDivider() { 427817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas final Context context = InstrumentationRegistry.getContext(); 437817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas RecyclerView rv = new RecyclerView(context); 447817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas rv.setLayoutManager(new LinearLayoutManager(context)); 457817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas rv.setAdapter(new MyAdapter(STRINGS)); 467817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas DividerItemDecoration decoration = new DividerItemDecoration( 477817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas new ContextThemeWrapper(context, R.style.nullListDivider), 487817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas DividerItemDecoration.HORIZONTAL); 497817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas rv.addItemDecoration(decoration); 507817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas rv.layout(0, 0, 1000, 1000); 517817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas decoration.onDraw(new Canvas(), rv, null); 527817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas } 537817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas 547817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas private static class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { 557817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas private String[] mDataset; 567817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas 577817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas public static class ViewHolder extends RecyclerView.ViewHolder { 587817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas TextView mTextView; 597817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas ViewHolder(TextView v) { 607817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas super(v); 617817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas mTextView = v; 627817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas } 637817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas } 647817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas 657817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas MyAdapter(String[] myDataset) { 667817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas mDataset = myDataset; 677817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas } 687817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas 697817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas @Override 707817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 717817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas return new ViewHolder(new TextView(parent.getContext())); 727817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas } 737817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas 747817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas @Override 757817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas public void onBindViewHolder(ViewHolder holder, int position) { 767817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas holder.mTextView.setText(mDataset[position]); 777817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas } 787817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas 797817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas @Override 807817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas public int getItemCount() { 817817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas return mDataset.length; 827817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas } 837817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas } 847817068d6307274e2a49cc3a9cb197afd6c1d0e0Aurimas Liutikas} 85