blob: db960203a6477507ee22f91585a171745c8c5693 [file] [log] [blame]
/*
* Copyright (C) 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
(function() {
module('NewBugForm');
const testFormData = {
component: { formName: 'component', value: 'Tools / Tests' },
description: { formName: 'comment', value: 'This is a description\n\nwith\nnewlines' },
keywords: { formName: 'keywords', value: 'Qt, PlatformOnly' },
operatingSystem: { formName: 'op_sys', value: 'Windows 7' },
platform: { formName: 'rep_platform', value: 'PC' },
product: { formName: 'product', value: 'WebKit' },
title: { formName: 'short_desc', value: 'This is a bug title' },
url: { formName: 'bug_file_loc', value: 'http://example.com/path?query=foo#anchor' },
version: { formName: 'version', value: '528+ (Nightly Build)' },
};
function createTestForm() {
var form = new NewBugForm();
for (var key in testFormData) {
form[key] = testFormData[key].value;
}
return form;
}
test('properties are set', 9, function() {
var form = createTestForm();
for (var key in testFormData) {
equal(form[key], testFormData[key].value);
}
});
test('domElement() posts to enter_bug.cgi', 3, function() {
var formElement = createTestForm().domElement();
equal(formElement.tagName, 'FORM');
equal(formElement.method, 'post');
equal(formElement.action, 'https://bugs.webkit.org/enter_bug.cgi');
});
test('domElement() contains only hidden input elements', 9, function() {
var elements = createTestForm().domElement().elements;
for (var i = 0; i < elements.length; ++i) {
equal(elements[i].type, 'hidden');
}
});
test('domElement() contains all form values', 9, function() {
var formElement = createTestForm().domElement();
for (var key in testFormData) {
var data = testFormData[key];
equal(formElement[data.formName].value, data.value, key);
}
});
})();