Results: 1) Make sure onChange doesn't fire when clicking on an initially selected item 2) Make sure onChange fires when deselecting an initially selected item onChange fired 3) Make sure onChange fires when clicking onChange fired Incorrect selection: "1" instead of "2" 4) Make sure onChange doesn't fire when clicking again on the same item Incorrect selection: "1" instead of "2" 5) Make sure onChange fires when clicking on a new item onChange fired 6) Make sure onChange fires when changing the selection with the keyboard onChange fired 7) Make sure onChange doesn't fire when setting the select element's value from JS 8) Make sure onChange doesn't fire when clicking on the already selected option onChange fired Incorrect selection: "1" instead of "2" 9) Make sure onChange doesn't fire when setting an option's selected state from JS Incorrect selection: "1,3" instead of "2,3" Incorrect selection: "1,3" instead of "3" 10) Make sure onChange doesn't fire when clicking on this option onChange fired Incorrect selection: "2" instead of "3" 11) Make sure onChange fires when deselecting the last selected option with a mouse click onChange fired 12) Make sure onChange doesn't fire when adding a new selected option 13) Make sure onChange doesn't fire when clicking on it onChange fired Incorrect selection: "3" instead of "4" 14) Make sure onChange fires when clicking on a previously selected option onChange fired Incorrect selection: "2,3" instead of "3,4" 15) Make sure onChange doesn't fire when removing a selected option Incorrect selection: "2,3" instead of "3" 16) Make sure onChange doesn't fire when clicking on the option that remains selected onChange fired Incorrect selection: "2" instead of "3" 17) Make sure onChange fires when typing the name of an option onChange fired 18) Make sure onChange doesn't fire when leaving the select