2018-07-30 Fred Gleason <fredg@paravelsystems.com>

* Modified the 'editcart.html' test harness to process UTF-8 strings
	correctly.
	* Modified the 'editcut.html' test harness to process UTF-8 strings
	correctly.
This commit is contained in:
Fred Gleason 2018-07-30 08:55:33 -04:00
parent 542fb7d6a6
commit 6888838f90
4 changed files with 99 additions and 65 deletions

View File

@ -17243,3 +17243,8 @@
* Added a 'SaveString' test method to the web API.
* Refactored the multipart-mime parser in 'RDFormPost' to process
UTF-8 strings correctly.
2018-07-30 Fred Gleason <fredg@paravelsystems.com>
* Modified the 'editcart.html' test harness to process UTF-8 strings
correctly.
* Modified the 'editcut.html' test harness to process UTF-8 strings
correctly.

View File

@ -2,7 +2,7 @@
//
// Script for selecting cart label elements for the EditCart web method
//
// (C) Copyright 2015 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2015-2018 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
@ -18,10 +18,10 @@
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
function EditCart_Field(field)
function EditCart_Field(field,sep)
{
if(document.getElementById("USE_"+field).checked) {
return '&'+field+'='+UrlEncode(document.getElementById(field).value);
return AddMimePart(field,document.getElementById(field).value,sep,false);
}
return '';
}
@ -29,39 +29,39 @@ function EditCart_Field(field)
function EditCart_MakePost()
{
var form='COMMAND=14';
form+='&LOGIN_NAME='+document.getElementById("LOGIN_NAME").value;
form+='&PASSWORD='+document.getElementById("PASSWORD").value;
form+='&TICKET='+document.getElementById("TICKET").value;
form+='&CART_NUMBER='+document.getElementById("CART_NUMBER").value;
var sep=MakeMimeSeparator();
form=sep+"\r\n";
form+=EditCart_Field('ASYNCHRONOUS',sep);
form+=EditCart_Field('ENFORCE_LENGTH',sep);
form+=EditCart_Field('GROUP_NAME',sep);
form+=EditCart_Field('TITLE',sep);
form+=EditCart_Field('ARTIST',sep);
form+=EditCart_Field('YEAR',sep);
form+=EditCart_Field('SONG_ID',sep);
form+=EditCart_Field('ALBUM',sep);
form+=EditCart_Field('LABEL',sep);
form+=EditCart_Field('CLIENT',sep);
form+=EditCart_Field('AGENCY',sep);
form+=EditCart_Field('PUBLISHER',sep);
form+=EditCart_Field('COMPOSER',sep);
form+=EditCart_Field('CONDUCTOR',sep);
form+=EditCart_Field('USER_DEFINED',sep);
form+=EditCart_Field('OWNER',sep);
form+=EditCart_Field('NOTES',sep);
form+=AddMimePart('LOGIN_NAME',document.getElementById('LOGIN_NAME').value,sep,false);
form+=AddMimePart('PASSWORD',document.getElementById('PASSWORD').value,sep,false);
form+=AddMimePart('TICKET',document.getElementById('TICKET').value,sep,false);
form+=AddMimePart('CART_NUMBER',document.getElementById('CART_NUMBER').value,sep,false);
if(document.getElementById("INCLUDE_CUTS").value.length==0) {
form+="&INCLUDE_CUTS=0";
form+=AddMimePart('INCLUDE_CUTS',document.getElementById('INCLUDE_CUTS').value,sep,false);
}
else {
form+="&INCLUDE_CUTS="+document.getElementById("INCLUDE_CUTS").value;
}
form+=EditCart_Field("ASYNCHRONOUS");
form+=EditCart_Field("ENFORCE_LENGTH");
form+=EditCart_Field("FORCED_LENGTH");
form+=EditCart_Field("GROUP_NAME");
form+=EditCart_Field("TITLE");
form+=EditCart_Field("ARTIST");
form+=EditCart_Field("YEAR");
form+=EditCart_Field("SONG_ID");
form+=EditCart_Field("ALBUM");
form+=EditCart_Field("LABEL");
form+=EditCart_Field("CLIENT");
form+=EditCart_Field("AGENCY");
form+=EditCart_Field("PUBLISHER");
form+=EditCart_Field("COMPOSER");
form+=EditCart_Field("CONDUCTOR");
form+=EditCart_Field("USER_DEFINED");
form+=EditCart_Field("OWNER");
form+=EditCart_Field("NOTES");
form+=AddMimePart('COMMAND','14',sep,true);
return form;
}
function EditCart_ShowPost()
{
alert('form: '+EditCart_MakePost());

View File

@ -18,10 +18,10 @@
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
function EditCut_Field(field)
function EditCut_Field(field,sep)
{
if(document.getElementById("USE_"+field).checked) {
return '&'+field+'='+UrlEncode(document.getElementById(field).value);
return AddMimePart(field,document.getElementById(field).value,sep,false);
}
return '';
}
@ -29,44 +29,47 @@ function EditCut_Field(field)
function EditCut_MakePost()
{
var form='COMMAND=15';
form+='&LOGIN_NAME='+document.getElementById("LOGIN_NAME").value;
form+='&PASSWORD='+document.getElementById("PASSWORD").value;
form+='&TICKET='+document.getElementById("TICKET").value;
form+='&CART_NUMBER='+document.getElementById("CART_NUMBER").value;
form+='&CUT_NUMBER='+document.getElementById("CUT_NUMBER").value;
var sep=MakeMimeSeparator();
form=sep+"\r\n";
form+=EditCut_Field("EVERGREEN");
form+=EditCut_Field("DESCRIPTION");
form+=EditCut_Field("OUTCUE");
form+=EditCut_Field("ISRC");
form+=EditCut_Field("ISCI");
form+=EditCut_Field("START_DATETIME");
form+=EditCut_Field("END_DATETIME");
form+=EditCut_Field("MON");
form+=EditCut_Field("TUE");
form+=EditCut_Field("WED");
form+=EditCut_Field("THU");
form+=EditCut_Field("FRI");
form+=EditCut_Field("SAT");
form+=EditCut_Field("SUN");
form+=EditCut_Field("START_DAYPART");
form+=EditCut_Field("END_DAYPART");
form+=EditCut_Field("WEIGHT");
form+=EditCut_Field("START_POINT");
form+=EditCut_Field("END_POINT");
form+=EditCut_Field("FADEUP_POINT");
form+=EditCut_Field("FADEDOWN_POINT");
form+=EditCut_Field("SEGUE_START_POINT");
form+=EditCut_Field("SEGUE_END_POINT");
form+=EditCut_Field("HOOK_START_POINT");
form+=EditCut_Field("HOOK_END_POINT");
form+=EditCut_Field("TALK_START_POINT");
form+=EditCut_Field("TALK_END_POINT");
form+=EditCut_Field('EVERGREEN',sep);
form+=EditCut_Field('DESCRIPTION',sep);
form+=EditCut_Field('OUTCUE',sep);
form+=EditCut_Field('ISRC',sep);
form+=EditCut_Field('ISCI',sep);
form+=EditCut_Field('START_DATETIME',sep);
form+=EditCut_Field('END_DATETIME',sep);
form+=EditCut_Field('MON',sep);
form+=EditCut_Field('TUE',sep);
form+=EditCut_Field('WED',sep);
form+=EditCut_Field('THU',sep);
form+=EditCut_Field('FRI',sep);
form+=EditCut_Field('SAT',sep);
form+=EditCut_Field('SUN',sep);
form+=EditCut_Field('START_DAYPART',sep);
form+=EditCut_Field('END_DAYPART',sep);
form+=EditCut_Field('START_POINT',sep);
form+=EditCut_Field('END_POINT',sep);
form+=EditCut_Field('FADEUP_POINT',sep);
form+=EditCut_Field('FADEDOWN_POINT',sep);
form+=EditCut_Field('SEGUE_START_POINT',sep);
form+=EditCut_Field('SEGUE_END_POINT',sep);
form+=EditCut_Field('HOOK_START_POINT',sep);
form+=EditCut_Field('HOOK_END_POINT',sep);
form+=EditCut_Field('TALK_START_POINT',sep);
form+=EditCut_Field('TALK_END_POINT',sep);
form+=EditCut_Field('WEIGHT',sep);
form+=AddMimePart('LOGIN_NAME',document.getElementById('LOGIN_NAME').value,sep,false);
form+=AddMimePart('PASSWORD',document.getElementById('PASSWORD').value,sep,false);
form+=AddMimePart('TICKET',document.getElementById('TICKET').value,sep,false);
form+=AddMimePart('CART_NUMBER',document.getElementById('CART_NUMBER').value,sep,false);
form+=AddMimePart('CUT_NUMBER',document.getElementById('CUT_NUMBER').value,sep,false);
form+=AddMimePart('COMMAND','15',sep,true);
return form;
}
function EditCut_ShowPost()
{
alert('form: '+EditCut_MakePost());

View File

@ -42,6 +42,32 @@ function PostForm(form,url)
}
function MakeMimeSeparator()
{
sep='----------------------------';
for(var i=0;i<27;i++) {
num=Math.floor(Math.random()*10);
sep+=num.toString();
}
return sep;
}
function AddMimePart(name,value,sep,is_last)
{
var form='Content-Disposition: form-data; name="'+name+'"\r\n';
form+='\r\n';
form+=value+'\r\n';
form+=sep;
if(is_last) {
form+='--';
}
form+='\r\n';
return form;
}
function UrlEncode(str) {
var ret=new String;