; test resource methods of Context ; function to test methods on Resource ; for a valid Resource ID (define (test-resource-methods resource) ; a resource is an int ID in ScriptFu (assert `(integer? ,resource)) ; get-name returns a string (assert `(string? (car (pika-resource-get-name ,resource)))) ; id-is-valid returns truth ; (1) FUTURE #t (assert `(car (pika-resource-id-is-valid ,resource))) ; pika-resource-get-identifiers succeeds ; it returns a triplet (assert `(pika-resource-get-identifiers ,resource)) ; pika-resource-get-identifiers returns numeric for is-internal ; Some of the fresh pika active resource are internal, some not !!! (assert `(number? (car (pika-resource-get-identifiers ,resource)))) ; name from get-identifiers is same as from pika-resource-get-name ; name is second field of triplet i.e. cadr (assert `(string=? (cadr (pika-resource-get-identifiers ,resource)) (car (pika-resource-get-name ,resource)))) ; pika-resource-is-editable succeeds ; Returns a wrapped boolean (assert `(pika-resource-is-editable ,resource)) ; The fresh pika active resources are all system resources i.e. not editable ; returns 0 for #f (assert `(= (car(pika-resource-is-editable ,resource)) 0)) ) ; "Test Parasite") ; name ; "Procedure execution of pika-resource-get-parasite failed") ; test context-get-resource returns active resource of given className ; Setup. Not assert. (define testBrush (car (pika-context-get-resource "PikaBrush"))) (define testFont (car (pika-context-get-resource "PikaFont"))) (define testGradient (car (pika-context-get-resource "PikaGradient"))) (define testPalette (car (pika-context-get-resource "PikaPalette"))) (define testPattern (car (pika-context-get-resource "PikaPattern"))) ; FUTURE Dynamics and other Resource subclasses ; test methods on active resource ID's (test-resource-methods testBrush) (test-resource-methods testFont) (test-resource-methods testGradient) (test-resource-methods testPalette) (test-resource-methods testPattern) ; test more specific context methods return same result ; as the general context-get-resource ; test equality of numeric IDs (assert `(= (car(pika-context-get-brush)) ,testBrush)) (assert `(= (car(pika-context-get-font)) ,testFont)) (assert `(= (car(pika-context-get-gradient)) ,testGradient)) (assert `(= (car(pika-context-get-palette)) ,testPalette)) (assert `(= (car(pika-context-get-pattern)) ,testPattern)) ; test resource-id-is-foo methods ; the resource IDs from setup work with the specific id-is-foo methods (assert `(= (car(pika-resource-id-is-brush ,testBrush)) 1)) (assert `(= (car(pika-resource-id-is-font ,testFont)) 1)) (assert `(= (car(pika-resource-id-is-gradient ,testGradient)) 1)) (assert `(= (car(pika-resource-id-is-palette ,testPalette)) 1)) (assert `(= (car(pika-resource-id-is-pattern ,testPattern)) 1)) ; test errors ; invalid type name (assert-error `(pika-context-get-resource "InvalidTypeName") "Procedure execution of pika-context-get-resource failed") ; invalid numeric ID ; -1 is out of range (assert-error `(pika-resource-get-name -1) "Procedure execution of pika-resource-get-name failed on invalid input arguments:") ; 12345678 is in range but invalid (assert-error `(pika-resource-get-name 12345678) "Procedure execution of pika-resource-get-name failed on invalid input arguments:")