+
+it('testLogWarningForNonexistentOption', function() {
+ if (!OPTIONS_REFERENCE) {
+ return; // this test won't pass in non-debug mode.
+ }
+
+ var data = "X,Y,Y2,Y3\n" +
+ "1,-1,2,3";
+
+ var expectWarning = function(opts, badOptionName) {
+ DygraphOptions.resetWarnings_();
+ var warnings = getWarnings(graph, data, opts);
+ assert.deepEqual(['Unknown option ' + badOptionName], warnings);
+ };
+ var expectNoWarning = function(opts) {
+ DygraphOptions.resetWarnings_();
+ var warnings = getWarnings(graph, data, opts);
+ assert.deepEqual([], warnings);
+ };
+
+ expectNoWarning({});
+ expectWarning({nonExistentOption: true}, 'nonExistentOption');
+ expectWarning({series: {Y: {nonExistentOption: true}}}, 'nonExistentOption');
+ // expectWarning({Y: {nonExistentOption: true}});
+ expectWarning({axes: {y: {anotherNonExistentOption: true}}}, 'anotherNonExistentOption');
+ expectWarning({highlightSeriesOpts: {anotherNonExistentOption: true}}, 'anotherNonExistentOption');
+ expectNoWarning({highlightSeriesOpts: {strokeWidth: 20}});
+ expectNoWarning({strokeWidth: 20});
+});
+
+it('testOnlyLogsEachWarningOnce', function() {
+ if (!OPTIONS_REFERENCE) {
+ return; // this test won't pass in non-debug mode.
+ }
+
+ var data = "X,Y,Y2,Y3\n" +
+ "1,-1,2,3";
+
+ var warnings1 = getWarnings(graph, data, {nonExistent: true});
+ var warnings2 = getWarnings(graph, data, {nonExistent: true});
+ assert.deepEqual(['Unknown option nonExistent'], warnings1);
+ assert.deepEqual([], warnings2);
+});
+
+});