From c824e1e16d36987bdb7688f580a8793164f53fb6 Mon Sep 17 00:00:00 2001 From: nicolasconnault Date: Thu, 7 Aug 2008 12:59:44 +0000 Subject: [PATCH] MDL-15924 Added CLOB and BLOB tests --- lib/dml/simpletest/clob.txt | 197 ++++++++++++++++++++++++++++++++ lib/dml/simpletest/randombinary | Bin 0 -> 10000 bytes lib/dml/simpletest/testdml.php | 102 +++++++++++++++++ 3 files changed, 299 insertions(+) create mode 100755 lib/dml/simpletest/clob.txt create mode 100755 lib/dml/simpletest/randombinary diff --git a/lib/dml/simpletest/clob.txt b/lib/dml/simpletest/clob.txt new file mode 100755 index 0000000000..1e073fc9c8 --- /dev/null +++ b/lib/dml/simpletest/clob.txt @@ -0,0 +1,197 @@ +제 1장 총 칙 + +제 1조 (개요) + +이 약관은 전기통신사업법 및 동법 시행령에 의거 ㈜네오플(이하 "회사")이 제공하는 서비스 (이하 "서비스")의 이용조건, 절차, 의무, 책임사항 및 이용에 필요한 기타사항을 규정합니다. + +제 2조 (목적) + +이 약관은 다음과 같은 내용을 목적으로 합니다. +1. 안정적인 서비스 제공 및 서비스, 시스템의 보호를 목적으로 한다. +2. 이용자의 안정적인 서비스 이용 및 이용자의 데이타 보호를 목적으로 한다. +3. 네트워크 및 서비스 이용자 네트워크의 안정성, 프라이버시, 보안성 유지를 목적으로 한다. +4. 네트워크 및 서비스의 사용 원칙 가이드라인 제시를 목적으로 한다. + +제 3조 (약관의 효력과 변경) + +1. 회사는 귀하가 본 약관 내용에 동의하는 것을 조건으로 서비스를 제공 합니다. +2. 이 약관은 서비스 내에 게시하여 공시함으로써 효력을 발생합니다. +3. 당사의 서비스 제공 행위 및 귀하의 서비스 사용 행위에는 본 약관이 우선적으로 적용될 것입니다. +4. 회사는 이 약관을 개정할 경우에는 적용일자 및 개정사유를 명시하여 현행약관과 함께 초기화면에 그 적용일자 7일이전부터 적용일자 전일까지 공지합니다. +5. 이용자는 회원등록을 취소(회원탈퇴)할 수 있으며, 계속 사용의 경우는 약관 변경에 대한 동의로 간주됩니다. 변경된 약관은 공지와 동시에 그 효력이 발생됩니다. + +제 4조 (약관외 준칙) + +1. 서비스 이용에 관하여는 이 약관을 적용하며, 이 약관에 명시되지 아니 한 사항에 대하여는 전기통신 기본법, 전기통신사업법, 정보통신망 이용 촉진 및 정보보호 등에 관한 법률(이하통신망법), 기타 관련법령 및 회사의 공지,이용안내를 적용 합니다. +2. 이 약관의 공지 및 변경사항은 회사의 지정된 홈페이지(http://www.candybar.co.kr)에 게시하는 방법으로 공지합니다. + +제 5조 (용어의 정의) + +이 약관에서 사용하는 용어의 정의는 다음과 같습니다. +1. 이용자 : 서비스 이용을 신청하고 회사가 이를 승낙하여 회원ID를 발급 받은 자를 말합니다. +2. 가 입 : 회사가 제공하는 양식에 해당 정보를 기입하고, 이 약관에 동의하여 서비스 이용계약을 완료시키는 행위를 말합니다. +3. 회 원 : 회사에 개인 정보를 제공하여 회원 등록을 한 자로서, 회사가 제공하는 서비스를 이용할 수 있는 자를 말합니다. +4. 캔디바 ID : 회원의 서비스 이용을 위하여 회원이 신청하고 회사가 승인하는 문자 및 숫자의 조합을 말합니다. +5. 비밀번호 : 회원ID가 일치하는지를 확인하고 자신의 비밀보호를 위하여 이용자 자신이 선정한 문자와 숫자의 조합을 말합니다. +6. 탈퇴 및 해지 : 회원이 이용계약을 종료 시키는 행위를 말합니다. + +제 2장 서비스 이용 계약 + +제 6조 (이용 계약의 성립) + +1. 이용계약은 당사 소정의 가입신청 양식에서 요구하는 사항을 기록하여 가입을 완료 하는것으로 성립함을 원칙으로 합니다. +2. 이용신청은 이용신청자 자신의 실명으로 하여야 합니다. 실명이 아닌경우는 여러가지 불이익을 받을수 도 있습니다. +3. 이용계약은 서비스 이용희망자의 이용약관 동의 후 이용 신청에 대하여 회사가 승낙함으로써 성립합니다. +4. 서비스 이용 희망자가 14세 미만의 미성년자 또는 한정치산자인 경우 부모등 법정대리인의 동의를 받아 이용신청하며 납입책임자는 법정대리인으로 합니다. 또한 금치산자인 경우에는 법정대리인 을 이용자 및 납입책임자로 하여 신청합니다. + +제 7조 (이용신청의 승낙) +1. 회사는 제 6조의 규정에 의한 서비스 이용희망자에 대하여 업무수행상 또는 기술상 지장이 없는 경우에는 원칙적으로 접수순서에 따라 이용신청을 승낙합니다. +2. 이용자의 이용신청에 대하여 회사가 이를 승낙한 경우, 회사는 회원 ID와 기타 회사가 필요하다고 인정하는 내용을 이용자에게 통지합니다. + +제 8조 (이용신청에 대한 불승낙과 승낙의 보류) +1. 이용자가 신청한 이용 아이디(ID)가 이미 다른 이용자에 의해 쓰여지고 있는 경우 승낙을 하지 아니할 수 있습니다. +2. 회사는 다음 각호에 해당하는 이용신청에 대하여는 승낙을 하지 아니할 수 있습니다. +1) 타인 명의의 신청 +2) 허위의 신청이거나 허위사실을 기재한 경우 예) 주민등록 생성기를 이용한 비실명 가입 +3) 기타 이용신청고객의 귀책사유로 이용승낙이 곤란한 경우 +3. 회사는 전항의 경우에는 이를 이용신청고객에게 가능한 빠른 시일 내에 통지하여야 합니다. +4. 회사는 이용신청고객이 미성년자, 한정치산자인 경우에 법정대리인(부모 등)의 동의없는 이용신청에 대하여 승낙을 보류할 수 있습니다. +5. 회사는 이용신청이 불승낙되거나 승낙을 제한하는 경우에는 이를 이용신청자에게 즉시 통보합니다. + +제 9조 (이용 아이디 관리 및 변경) + +1. 이용 아이디(ID) 및 비밀번호에 대한 모든 관리책임은 이용자에게 있습니다. +2. 이용 아이디(ID)는 다음에 해당하는 경우에는 이용자와 합의하여 변경할 수 있습니다. +(단, 이용 아이디(ID)를 변경할 경우 기존 이용ID는 소멸됩니다.) +1) 이용 아이디(ID)가 이용자의 전화번호 또는 주민등록번호 등으로 등록되어 사생활 침해가 우려 되는 경우 +2) 타인에게 혐오감을 주거나 미풍양속에 어긋나는 경우 +3) 기타 회사가 인정하는 합리적인 사유가 있는 경우 +3. 회사는 이용 아이디(ID)에 의하여 서비스 이용요금 청구 및 게시판 관리 등 제반 이용자 관리 업무를 수행하며 이용자는 이용 아이디(ID)를 공유, 양도 또는 변경할 수 없습니다. 단, 그 사유가 명백하고 회사가 인정하는 경우에는 그러하지 아니 합니다. +4. 이용자가 신청 또는 변경하여 사용하는 이용 아이디(ID) 및 비밀번호에 의하여 발생하는 서비스 이용상의 과실 또는 제3자에 의한 부정사용등에 대한 모든 책임은 이용자에게 있습니다. 단, 회사의 고의 또는 중대한 과실이 있는 경우에는 그러하지 아니합니다. +5. 기타 아이디의 관리 및 변경 등에 관한 사항은 이 약관과 회사의 공지, 이용안내 에서 정하는 바에 의합니다. + +제 3장 계약당사자의 의무 및 책임 + +제 10조 (회사의 의무) + +1. 회사는 이용자로부터 제기되는 의견이나 불만이 정당하다고 인정할 경우에는 즉시 처리하여야 합니다. 즉시 처리가 곤란한 경우에는 그 사유와 처리일정을 서면 또는 전화 등으로 통보합니다. +2. 회사는 서비스 제공과 관련하여 취득한 이용자의 정보를 본인의 동의없이 타인에게 누설 배포할 수 없으며 서비스 관련 업무 이외의 목적으로도 사용할 수 없습니다. +3. 제2항의 경우 관계법령에 의한 규정에 의하여 수사상의 목적으로 관계기관으로부터 요구받은 경우나 정보통신윤리위원회의 요청이 있는 경우 또는 통신망법 24조 1항 '정보통신서비스의 제공에 따른 요금정산을 위하여 필요한 경우'에는 개인정보의 이용 혹은 제 3자에게 제공될수 있으며 그 범위는 회사의 개인정보보호정책을 따릅니다. +4. 회사는 계속적이고 안정적인 서비스 제공을 위하여 설비에 장애가 생기거나 멸실된 경우에는 지체없이 이를 수리 또는 복구하며, 서비스를 다시 이용할 수 있게 된 경우 이 사실을 이용자에게 통지하여야 합니다. 단 천재지변, 비상사태 또는 그밖의 부득이한 경우에는 서비스를 일시 중단하거나 중지할 수 있습니다. +5. 회사는 이용계약의 체결, 계약사항의 변경 및 해지 등 이용자와의 계약에 관련된 절차 및 내용 등에 있어서 이용자에게 편의를 제공하도록 노력합니다. +6. 회사는 이용자가 안전하게 당사서비스를 이용할 수 있도록 이용자의 개인정보(신용정보 포함)보호를 위한 보안시스템을 갖추어야 합니다. +7. 회사는 이용자가 제11조의 이용자의 의무를 위반한 경우 및 고의 또는 중대한 과실로 회사에 손해를 입힌 경우에는 사전 통보 없이 이용계약을 해지하거나 또는 기간을 정하여 서비스의 이용을 중지할 수 있습니다. + +제 11 조 (이용자의 의무) + +1. 이용자는 이 약관에서 규정하는 사항과 서비스 이용안내 또는 주의사항을 준수하여야 하며,기타 회사의 업무수행에 현저한 지장을 초래하는 행위를 하여서는 아니 됩니다. +2. 이용자는 서비스를 이용함에 있어 문제 발생소지 정보의 책임은 이용자에게 있습니다. +3. 이용자는 서비스를 이용하여 얻은 정보를 가공, 판매하는 행위 등 게재 된 자료를 상업적으로 이용할 수 없으며 이를 위반하여 발생하는 제반 문제에 대한 책임은 이용자에게 있습니다. +4. 이용자는 이용계약에 따라 요금을 지불하여야 하며, 서비스 이용요금의 미납으로 인하여 발생되는 모든 문제에 대한 책임은 이용자에게 있습니다. 단, 회사의 고의 또는 중과실의 경우에는 그러하지 아니 합니다. +5. 이용자는 회원가입시 정보는 정확하게 기입하여야 합니다. 주민등록생성기등을 이용하여 허위로 가입을 하거나 주민등록 생성기를 인터넷에 올리거나 이를 이용해 만든 행위에 관하여서도 주민등록법 개정안에 의거하여 엄중히 법적인 제재를 가할 수 있습니다. 또한 이미 제공된 귀하에 대한 정보가 정확한 정보가 되도록 유지, 갱신하여야 하며, 회원은 자신의 캔디바 ID 및 비밀번호를 제3자에게 이용하게 해서는 안됩니다. +6. 이용자는 당사의 사전 승낙없이 서비스를 이용하여 어떠한 영리행위도 할 수 없습니다. +7. 이용자는 당사 서비스를 이용하여 얻은 정보를 당사의 사전승낙 없이 복사, 복제, 변경, 번역, 출판·방송 기타의 방법으로 사용하거나 이를 타인에게 제공할 수 없습니다. +8. 이용자는 당사 서비스 이용과 관련하여 다음 각 호의 행위를 하여서는 안됩니다. +1) 다른 회원의 캔디바 ID를 부정 사용하는 행위 +2) 범죄행위를 목적으로 하거나 기타 범죄행위와 관련된 행위 +3) 선량한 풍속, 기타 사회질서를 해하는 행위 +4) 타인의 명예를 훼손하거나 모욕하는 행위 +5) 타인의 지적재산권 등의 권리를 침해하는 행위 +6) 해킹행위 또는 컴퓨터 바이러스의 유포행위 +7) 타인의 의사에 반하여 광고성 정보 등 일정한 내용을 지속적으로 전송하는 행위 +8) 서비스의 안전적인 운영에 지장을 주거나 줄 우려가 있는 일체의 행위 +9) 당사 사이트에 게시된 정보의 변경 +10) 기타 전기통신법 제53조와 전기통신사업법 시행령 16조(불온통신), 통신사업법 제53조3항에 위배되는 행위 +9. 다른 이용자들에게 피해를 주는 다음 각 호에 해당하는 행위를 하여서는 안됩니다. +1) 회사가 인정하는 서비스의 공식 운영자인 아이디를 사칭하는 내용 +2) 선정적이고 음란한 내용 +3) 반사회적이고 관계법령에 저촉되는 내용 +4) 기타 제3자의 상표권, 저작권에 위배될 가능성이 있는 내용 +5) 비어, 속어라고 판단되는 내용 +6) 욕설이나 노골적인 성 묘사를 하는 내용 +7) 다른 이용자를 희롱하거나, 위협하거나, 특정 이용자에게 지속적으로 고통을 주거나,불편을 주는 행위 +8) 서비스 내 또는 웹사이트 상에서 다른 회사 제품의 광고나 판촉활동을 하는 행위 +9) 저작권자의 허가 없이 저작권 문제가 발생할 소지가 있는 내용을 서비스 내 또는 웹사이트 상에 배포하는 행위 + +제 4장 서비스 이용·제한·정지등 + +제 12조 (서비스의 이용) + +1. 캔디바 서비스의 이용은 기본적으로 무료입니다. 단 회사에서 정한 별도의 유효정보 및 유료서비스에 대해서는 그러지 아니하며, 유료서비스 이용에 관한 사항은 회사가 별도로 정한 약관 및 정책에 따릅니다. +2. 유료 서비스 이용의 결제에 관한 사항(충전방법, 사용, 환불 등)은 바(Bar)정책 이용약관에 따릅니다. +3. 아바타 및 게임 아이템 등 유료서비스의 소유권은 회사에 있으며, 웹상의 사용권은 해당 컨텐츠를 구매한 이용자에게 있습니다. + +제 13조 (서비스 이용시간 및 중지) + +1. 서비스 이용은 회사의 업무상 또는 기술상 특별한 지장이 없는 한 연중 무휴, 1일 24시간을 원칙으로 합니다. 다만, 회사는 서비스의 데이터 베이스별로 이용가능시간을 정할 수 있으며, 이 경우 그 내용은 회사가 정하여 서비스에 게시하거나 별도로 공시하는 바에 따릅니다. +1) 제1항의 규정에도 불구하고 정기점검 등의 필요로 회사가 정한 날 또는 시간은 예외적으로 서비스 이용을 제한할 수 있습니다. +2. 전시,사변,천재지변 또는 이에 준하는 국가비상사태가 발생하거나 발생할 우려가 있는 경우와 전기통신사업법에 의한 기간통신사업자가 전기통신서비스를 중지하는등 기타 부득이한 사유가 있는 경우에는 서비스의 전부 또는 일부를 제한하거나 정지할 수 있습니다. +1) 회사는 제1항의 규정에 의하여 서비스의 전부 또는 일부를 제한하거나 정지한 때에는 지체없이 이용자에게 알려야 합니다. +3. 이용자가 국익 또는 사회적 공익을 저해할 목적이나 범죄적 목적으로 서비스를 이용하고 있다고 판단되는 경우에 회사는 이용자에게 사전 통보 없이 서비스를 중단할 수 있으며 그에 따른 데이터도 복구를 전제로 하지않고 삭제할 수 있습니다. +4. 회사는 이용정지 기간 중에 사유가 해소된 것이 확인된 경우에는 지체없이 서비스를 재개통 또는 이용정지를 해제합니다. + +제 14조 (각종 자료의 저장기간) + +회사는 필요한 경우 서비스의 일정 부분별로 이용자가 게시한 자료나 이용자의 필요에 의해 저장하고 있는 자료에 대해 일정한 게재기간 또는 저장기간을 정할 수 있으며, 필요에 따라 기간을 변경할 수 있습니다. + +제 15조 (게시물의 저작권) + +1. 이용자가 서비스 홈페이지에 게시하거나 등록한 자료의 지적재산권은 이용자에게 귀속됩니다. 단, 회사는 서비스 홈페이지의 게재권을 가지며 비상업적 목적으로는 이용자의 게시물을 활용할 수 있습니다. +2. 이용자는 서비스를 이용하여 얻은 정보를 가공, 판매하는 행위 등 게재 된 자료를 상업적으로 이용할 수 없으며 이를 위반하여 발생하는 제반 문제에 대한 책임은 이용자에게 있습니다. +3. 회사는 이용자 게시물의 내용 검열, 검색 및 관리에 따른 일체의 손해배상 책임을 지지아니 합니다. + +제 5장 개인정보 보호 + +제 16조 개인정보보호 +회사는 관계법령이 정하는 바에 따라 회원등록정보를 포함한 회원의 개인정보를 보호하기 위하여 노력을 합니다. 회원의 개인정보보호에 관하여 관계법령 및 회사가 정하는 개인정보보호정책에 정한 바에 따릅니다. + +제 6장 계약해지 및 이용제한 + +제 17조 (계약의 해지) + +회원이 이용계약을 해지하고자 하는 경우에는 회원 본인이 온라인을 통하여 등록해지신청을 하여야 합니다. + +제 18조 (이용제한) + +1. 회사는 회원이 다음 각 호의 사유에 해당하는 경우 사전통지 없이 회원의 서비스 이용제한 및 적법한 조치를 취할 수 있으며 이용계약을 해지하거나 또는 기간을 정하여 서비스를 중지할 수 있습니다. +1) 회원 가입신청 또는 변경시 허위 내용을 등록한 경우 +2) 타인의 서비스 이용을 방해하거나 그 정보를 도용한 경우 +3) 회사의 운영진, 직원 또는 관계자를 사칭하는 경우 +4) 회사의 사전승락없이 서비스를 이용하여 영업활동을 하는 경우 +5) 회원ID를 타인과 거래하거나 회원ID의 게임상 사이버 자산을 타인과 매매하는 행위를 하는 경우 +6) 회사 프로그램상의 버그를 악용하여 정상적이지 아니한 방법으로 게임상 사이버자산을 취득하는 행위를 하는 경우 +7) 서비스를 통하여 얻은 정보를 회사의 사전승낙없이 서비스 이용 외이 목적으로 복제하거나 이를 출판 및 방송 등에 사용하거나, 제3자에게 제공하는 경우 +8) 회사 또는 제3자의 저작권 등 기타 지적재산권을 침해하는 내용을 전송, 게시, 전자우편 또는 기타의 방법으로 타인에게 유포하는 경우 +9) 공공질서 및 미풍약속에 위반되는 음란한 내용의 정보, 문장, 도형, 음향, 동영상을 전송, 게시, 전자우편 또는 기타의 방법으로 타인에게 유포하는 경우 +10) 심히 모욕적이거나 개인신상에 대한 내용이어서 타인의 명예나 프라이버시를 침해할 수 있는 내용을 전송, 게시, 전자우편 또는 기타의 방법으로 타인에게 유포하는 경우 +11) 서비스에 위해를 가하거나 고의로 방해한 경우 +12) 다른 회원을 희롱, 위협하거나 특정 이용자에게 지속적으로 고통, 불편을 주는 행위를 하는 경우 +13) 범죄와 관련이 있다고 객관적으로 판단되는 행위를 하는 경우 +14) 본 서비스를 이용함에 있어 본 약관 및 기타 회사가 정한 정책 또한 운영 규칙을 위반하는 경우 +15) 기타 관련 법령에 위배하는 행위를 하는 경우 + +제 7장 분쟁조정 및 기타사항 + +제 19조 (손해배상) + +회사는 무료로 제공되는 서비스 이용과 관련하여 회원에게 발생한 어떠한 손해에 관하여도 책임을 지지 않습니다. + +제 20조 (면책조항) + +1. 회사는 천재지변 또는 이에 준하는 불가항력으로 인하여 서비스를 제공 할 수 없는 경우에는 서비스 제공에 관한 책임이 면제됩니다. +2. 회사는 회원의 귀책사유로 인한 서비스 이용의 장애에 대하여 책임을 지지 않습니다. +3. 회사는 회원이 서비스를 이용하여 기대하는 수익을 상실한 것이나 서비스를 통하여 얻은 자료로 인한 손해에 관하여 책임을 지지 않습니다. +4. 회사는 회원이 서비스에 게재한 정보, 자료, 사실의 신뢰도, 정확성 등 내용에 관하여는 책임을 지지 않습니다. +5. 회사는 서비스 이용과 관련하여 가입자에게 발생한 손해 가운데 가입자의 고의, 과실에 의한 손해에 대하여 책임을 지지 않습니다. +6. 회사는 회원간 또는 회원과 제3자간에 서비스를 매개로 하여 물품거래 혹은 금전적 거래등과 관련하여 어떠한 책임도 부담하지 않습니다. + + +제 21조(분쟁조정) + +회사와 이용고객은 개인정보에 관한 분쟁이 있는 경우 신속하고 효과적인 분쟁해결을 위하여 한국정보보호진흥원내의 개인정보분쟁조정위원회에 그 처리를 의뢰할 수 있습니다. + + +제 22조(회사의 소유권) + +1. 회사의 서비스, 소프트웨어, 이미지, 마크, 로고, 디자인, 서비스명칭, 정보 및 상표 등과 관련된 지적재산권 및 기타 권리는 회사에게 소유권이 있습니다. +2. 이용자는 회사가 명시적으로 승인한 경우를 제외하고는 전항의 소정의 각 재산에 대한 전부 또는 일부의 수정, 대여, 대출, 판매, 배포, 제 작, 양도, 재라이센스, 담보권 설정 행위, 상업적 이용 행위를 할 수 없으며, 제3자로 하여금 이와 같은 행위를 하도록 허락할 수 없습니다. diff --git a/lib/dml/simpletest/randombinary b/lib/dml/simpletest/randombinary new file mode 100755 index 0000000000000000000000000000000000000000..91634b696a065a264558e97ccd21841a32525668 GIT binary patch literal 10000 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 at{iLsq(N(V1Y?5g`FFwGqW5iDCW3ZxVP)9> literal 0 HcmV?d00001 diff --git a/lib/dml/simpletest/testdml.php b/lib/dml/simpletest/testdml.php index 327164884e..d286c9aa7e 100755 --- a/lib/dml/simpletest/testdml.php +++ b/lib/dml/simpletest/testdml.php @@ -974,6 +974,53 @@ class dml_test extends UnitTestCase { } + public function test_insert_record_clob() { + global $CFG; + + $DB = $this->tdb; + $dbman = $DB->get_manager(); + + $table = new xmldb_table("testtable"); + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null); + $table->add_field('description', XMLDB_TYPE_TEXT, 'big', null, null, null, null, null, null); + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + $dbman->create_table($table); + $this->tables[$table->getName()] = $table; + + $clob = file_get_contents($CFG->libdir.'/dml/simpletest/clob.txt'); + + $this->assertTrue($id = $DB->insert_record('testtable', array('description' => $clob))); + $this->assertTrue($record = $DB->get_record('testtable', array('id' => $id))); + $this->assertEqual($clob, $record->description); + + } + + public function test_insert_record_multiple_clobs() { + global $CFG; + + $DB = $this->tdb; + $dbman = $DB->get_manager(); + + $table = new xmldb_table("testtable"); + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null); + $table->add_field('description', XMLDB_TYPE_TEXT, 'big', null, null, null, null, null, null); + $table->add_field('image', XMLDB_TYPE_BINARY, 'big', null, null, null, null, null, null); + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + $dbman->create_table($table); + $this->tables[$table->getName()] = $table; + + $clob = file_get_contents($CFG->libdir.'/dml/simpletest/clob.txt', FILE_TEXT); + $blob = file_get_contents($CFG->libdir.'/dml/simpletest/randombinary', FILE_BINARY); + + $this->assertTrue($id = $DB->insert_record('testtable', array('description' => $clob, 'image' => $blob))); + $this->assertTrue($record = $DB->get_record('testtable', array('id' => $id))); + $this->assertEqual($clob, $record->description); + $this->assertEqual($blob, $record->image); + $this->assertEqual($clob, $DB->get_field('testtable', 'description', 'id', $id)); + $this->assertEqual($blob, $DB->get_field('testtable', 'image', 'id', $id)); + } + + public function test_update_record_raw() { $DB = $this->tdb; $dbman = $DB->get_manager(); @@ -1012,6 +1059,61 @@ class dml_test extends UnitTestCase { $this->assertTrue($record = $DB->get_record('testtable', array('course' => 2))); } + public function test_update_record_clob() { + global $CFG; + + $DB = $this->tdb; + $dbman = $DB->get_manager(); + + $table = new xmldb_table("testtable"); + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null); + $table->add_field('description', XMLDB_TYPE_TEXT, 'big', null, null, null, null, null, null); + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + $dbman->create_table($table); + $this->tables[$table->getName()] = $table; + + $clob = file_get_contents($CFG->libdir.'/dml/simpletest/clob.txt'); + + $id = $DB->insert_record('testtable', array('description' => $clob)); + $record = $DB->get_record('testtable', array('id' => $id)); + $record->description = substr($clob, 0, 500); + $this->assertTrue($DB->update_record('testtable', $record)); + + $record = $DB->get_record('testtable', array('id' => $id)); + $this->assertEqual(substr($clob, 0, 500), $record->description); + } + + public function test_update_record_multiple_clobs() { + global $CFG; + + $DB = $this->tdb; + $dbman = $DB->get_manager(); + + $table = new xmldb_table("testtable"); + $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null); + $table->add_field('description', XMLDB_TYPE_TEXT, 'big', null, null, null, null, null, null); + $table->add_field('image', XMLDB_TYPE_BINARY, 'big', null, null, null, null, null, null); + $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); + $dbman->create_table($table); + $this->tables[$table->getName()] = $table; + + $clob = file_get_contents($CFG->libdir.'/dml/simpletest/clob.txt'); + $blob = file_get_contents($CFG->libdir.'/dml/simpletest/randombinary'); + + $id = $DB->insert_record('testtable', array('description' => $clob, 'image' => $blob)); + $record = $DB->get_record('testtable', array('id' => $id)); + $record->description = substr($clob, 0, 500); + $record->image = substr($blob, 0, 250); + $this->assertTrue($DB->update_record('testtable', $record)); + + $record = $DB->get_record('testtable', array('id' => $id)); + $this->assertEqual(substr($clob, 0, 500), $record->description); + $this->assertEqual(substr($blob, 0, 250), $record->image); + $this->assertEqual(substr($clob, 0, 500), $DB->get_field('testtable', 'description', 'id', $id)); + $this->assertEqual(substr($blob, 0, 250), $DB->get_field('testtable', 'image', 'id', $id)); + + } + public function test_set_field() { $DB = $this->tdb; $dbman = $DB->get_manager(); -- 2.39.5