
// @dart = 2.9
import 'dart:html';

import 'package:expect/minitest.dart';

bool isChecked(Element e) => (e as CheckboxInputElement).checked;
bool isUnchecked(Element e) => !(e as CheckboxInputElement).checked;

// Test that List<Element> implements List<T>
main() {
  Element insertTestDiv() {
    Element element = new Element.tag('div');
    element.innerHtml = r"""
<div id='allChecked'>
<input type="checkbox" name="c1" value="1" checked="yes">
<input type="checkbox" name="c2" value="2" checked="yes">
<input type="checkbox" name="c3" value="3" checked="yes">
<input type="checkbox" name="c4" value="4" checked="yes">
</div>
<div id='someChecked'>
<input type="checkbox" name="s1" value="1" checked="yes">
<input type="checkbox" name="s2" value="2">
<input type="checkbox" name="s3" value="3" checked="yes">
<input type="checkbox" name="s4" value="4">
</div>
<div id='noneChecked'>
<input type="checkbox" name="n1" value="1">
<input type="checkbox" name="n2" value="2">
<input type="checkbox" name="n3" value="3">
<input type="checkbox" name="n4" value="4">
</div>
<div id='emptyDiv'></div>
""";
    document.body.append(element);
    return element;
  }

  test('IsList', () {
    Element root = insertTestDiv();

    List<Element> eachChecked = document.querySelector('#allChecked').children;

    expect(eachChecked is List, isTrue);

    root.remove();
  });
  test('Every', () {
    Element root = insertTestDiv();

    List<Element> eachChecked = document.querySelector('#allChecked').children;

    List<Element> someChecked = document.querySelector('#someChecked').children;

    List<Element> noneChecked = document.querySelector('#noneChecked').children;

    expect(eachChecked.length, 4);
    expect(someChecked.length, 4);
    expect(noneChecked.length, 4);

    expect(eachChecked.every(isChecked), isTrue);
    expect(eachChecked.every(isUnchecked), isFalse);
    expect(someChecked.every(isChecked), isFalse);
    expect(someChecked.every(isUnchecked), isFalse);
    expect(noneChecked.every(isChecked), isFalse);
    expect(noneChecked.every(isUnchecked), isTrue);

    root.remove();
  });
  test('Some', () {
    Element root = insertTestDiv();

    List<Element> eachChecked = document.querySelector('#allChecked').children;

    List<Element> someChecked = document.querySelector('#someChecked').children;

    List<Element> noneChecked = document.querySelector('#noneChecked').children;

    expect(eachChecked.length, 4);
    expect(someChecked.length, 4);
    expect(noneChecked.length, 4);

    expect(eachChecked.any(isChecked), isTrue);
    expect(eachChecked.any(isUnchecked), isFalse);
    expect(someChecked.any(isChecked), isTrue);
    expect(someChecked.any(isUnchecked), isTrue);
    expect(noneChecked.any(isChecked), isFalse);
    expect(noneChecked.any(isUnchecked), isTrue);

    root.remove();
  });
  test('Filter', () {
    Element root = insertTestDiv();

    List<Element> eachChecked = document.querySelector('#allChecked').children;

    List<Element> someChecked = document.querySelector('#someChecked').children;

    List<Element> noneChecked = document.querySelector('#noneChecked').children;

    expect(eachChecked.length, 4);
    expect(someChecked.length, 4);
    expect(noneChecked.length, 4);

    expect(eachChecked.where(isChecked).length, 4);
    expect(eachChecked.where(isUnchecked).length, 0);
    expect(someChecked.where(isChecked).length, 2);
    expect(someChecked.where(isUnchecked).length, 2);
    expect(noneChecked.where(isChecked).length, 0);
    expect(noneChecked.where(isUnchecked).length, 4);

    root.remove();
  });
  test('IsEmpty', () {
    Element root = insertTestDiv();

    List<Element> someChecked = document.querySelector('#someChecked').children;

    List<Element> emptyDiv = document.querySelector('#emptyDiv').children;

    expect(someChecked.length, 4);
    expect(emptyDiv.length, 0);

    expect(someChecked.isEmpty, isFalse);
    expect(emptyDiv.isEmpty, isTrue);

    root.remove();
  });

  int countWithForEach(collection, predicate) {
    int count = 0;
    collection.forEach((element) {
      if (predicate(element)) count++;
    });
    return count;
  }

  test('ForEach', () {
    Element root = insertTestDiv();

    List<Element> eachChecked = document.querySelector('#allChecked').children;

    List<Element> someChecked = document.querySelector('#someChecked').children;

    List<Element> noneChecked = document.querySelector('#noneChecked').children;

    expect(eachChecked.length, 4);
    expect(someChecked.length, 4);
    expect(noneChecked.length, 4);

    expect(countWithForEach(eachChecked, isChecked), 4);
    expect(countWithForEach(eachChecked, isUnchecked), 0);
    expect(countWithForEach(someChecked, isChecked), 2);
    expect(countWithForEach(someChecked, isUnchecked), 2);
    expect(countWithForEach(noneChecked, isChecked), 0);
    expect(countWithForEach(noneChecked, isUnchecked), 4);

    root.remove();
  });

  int countWithForLoop(collection, predicate) {
    int count = 0;
    for (var element in collection) {
      if (predicate(element)) count++;
    }
    return count;
  }

  test('ForLoop', () {
    // Uses iterator.
    Element root = insertTestDiv();

    List<Element> eachChecked = document.querySelector('#allChecked').children;

    List<Element> someChecked = document.querySelector('#someChecked').children;

    List<Element> noneChecked = document.querySelector('#noneChecked').children;

    expect(eachChecked.length, 4);
    expect(someChecked.length, 4);
    expect(noneChecked.length, 4);

    expect(countWithForLoop(eachChecked, isChecked), 4);
    expect(countWithForLoop(eachChecked, isUnchecked), 0);
    expect(countWithForLoop(someChecked, isChecked), 2);
    expect(countWithForLoop(someChecked, isUnchecked), 2);
    expect(countWithForLoop(noneChecked, isChecked), 0);
    expect(countWithForLoop(noneChecked, isUnchecked), 4);

    root.remove();
  });
  test('Last', () {
    Element root = insertTestDiv();

    List<Element> someChecked = document.querySelector('#someChecked').children;

    expect(someChecked.length, 4);

    expect(someChecked.last, equals(someChecked[3]));

    root.remove();
  });
  test('IndexOf', () {
    Element root = insertTestDiv();

    List<Element> someChecked = document.querySelector('#someChecked').children;

    List<Element> noneChecked = document.querySelector('#noneChecked').children;

    expect(someChecked.length, 4);
    expect(noneChecked.length, 4);

    expect(someChecked.indexOf(someChecked[0], 0), 0);
    expect(someChecked.indexOf(someChecked[1], 0), 1);
    expect(someChecked.indexOf(someChecked[2], 0), 2);
    expect(someChecked.indexOf(someChecked[3], 0), 3);

    expect(someChecked.indexOf(someChecked[0], 1), -1);
    expect(someChecked.indexOf(someChecked[1], 2), -1);
    expect(someChecked.indexOf(someChecked[2], 3), -1);
    expect(someChecked.indexOf(someChecked[3], 4), -1);

    expect(someChecked.indexOf(noneChecked[0], 0), -1);
    expect(noneChecked.indexOf(someChecked[0], 0), -1);
    expect(someChecked.indexOf(noneChecked[1], 0), -1);
    expect(noneChecked.indexOf(someChecked[1], 0), -1);

    root.remove();
  });
  test('LastIndexOf', () {
    Element root = insertTestDiv();

    List<Element> someChecked = document.querySelector('#someChecked').children;

    List<Element> noneChecked = document.querySelector('#noneChecked').children;

    expect(someChecked.length, 4);
    expect(noneChecked.length, 4);

    expect(someChecked.lastIndexOf(someChecked[0], 3), 0);
    expect(someChecked.lastIndexOf(someChecked[1], 3), 1);
    expect(someChecked.lastIndexOf(someChecked[2], 3), 2);
    expect(someChecked.lastIndexOf(someChecked[3], 3), 3);

    expect(someChecked.lastIndexOf(someChecked[0], -1), -1);
    expect(someChecked.lastIndexOf(someChecked[1], 0), -1);
    expect(someChecked.lastIndexOf(someChecked[2], 1), -1);
    expect(someChecked.lastIndexOf(someChecked[3], 2), -1);

    expect(someChecked.lastIndexOf(noneChecked[0], 3), -1);
    expect(noneChecked.lastIndexOf(someChecked[0], 3), -1);
    expect(someChecked.lastIndexOf(noneChecked[1], 3), -1);
    expect(noneChecked.lastIndexOf(someChecked[1], 3), -1);

    root.remove();
  });
}
