Internet Browser Compliance Check
JavaScript Interpreter
JavaScript (JS) is an Internet programming language, which is found embedded within most common Web browsers. Due to several market domination battles and other idiosyncrasies of the world, there are some different implementations of JS standard language. This program was originally developed as a check for CARPA (Computer Aided Role Playing Adventure), which requires the so called JavaScript 1.1, which is easily found in some of the most popular browsers available (some for free).
Checking your browser's JavaScript interpreter...
Cookies
Cookies are data blocks that are stored in your computer's memory. This way, that data can be shared by different Pages in the same or even in other servers. Once a cookie can only be received by a user that visits the delivering Page, some servers started to use marked cookies to trace the user's visited Pages, creating a problem of privacy to the user. Thus, most browsers allow cookie delivery to be blocked. CARPA uses the cookies to save adventure data, so you must enable the delivery.
I'm not paranoic about security, but I took some care. This program cannot make any kind of tracking, because it already uses all available memory for cookies to save the adventure data, which includes characters' data (not only your character's, but also those of all other "partners" you come to find in the adventure), items you own, items in the environment you modify (not all items will keep the modifications, there are not enough memory for that, only the important ones will, all others are "magically" restored to their original state when you leave a scene - or simply you won't be able to modify them at all) and so on. The data are also encrypted to avoid passing by curious eyes to check your cookies. All processing is client-side, that is, everything happens and is kept in your computer (by the way, there is no way to save data in the Page server, as far as I know), so don't worry, nothing you do in the adventure will be crossing the Net.
All that also brings some problems, too. If something happens to your computer, you will lose your saved adventures. To solve this, the adventure saving Page allows you to copy/paste the data from the cookies, so you can save them in a portable file.
Another problem is if you actually want to keep track of what you have been doing, what items and characters you have found (and where) and so on, that is, if you want to have an adventure log file. I couldn't solve this problem, yet. Copy/paste is enough for adventure saving, which is supposed to be done only from time to time, but a log file would be updated at every action (or, at least, at every scene). By now, you will have to write a log file by your own (later I may find a way to make an auto-log, maybe using guestbook servers, if they are safe, of course). Anyway, let's go test those cookies...
Testing cookie character compatibility...
Testing cookie maximum memory...
Math and String Core
Most systems and programming languages have a finite capacity for numeric representation. That is also true for JavaScript. However, some data used by the language requires very large numeric representation, like dates. CARPA also needs to handle some very large numbers, for example, to compress data in the cookies. A new set of functions were created to deal with such data. The following tests will check the built-in short number core and the enhanced functions, which treat the numbers as strings of characters. The way strings are handled may also change, so a string encryption test is also made.
Testing...
Event Handler
This is a test most browsers fail. JavaScript should be able to detect some events and react to them, executing specific tasks. CARPA is currently using just some of the many available event handlers. Some event handlers are used just for cosmetic reasons, but there are a few that are really essential. This test also checks the browser's table handling routine (the crystals and the void links are encased in tables).
The following tables contain two crystals and some "void links" (they won't lead you anywhere if you click on them - at least, they shouldn't). The left crystal will change its colour from time to time. If you move your mouse over any crystal, the right one will become gray. Moving your mouse over any of the links will change that crystal's colour accordingly. If the crystal at the left shifts to the same colour of the other one, the background colour will become white till it shifts to a different colour.
The worst about this test is that it cannot be automatically executed and analyzed. You will have to check it yourself. First, verify if the left crystal is shifting its colour, after each blink. Second, move the mouse over the colour names, the crystal to the right should change accordingly ("red" should make the crystal red, for example). When both crystals are the same colour, the whole Page should get a white background, returning to its original bluish after a while (when the left crystal changes its colour).
Common bugs:
Frames
Frames are not JavaScript elements, they exist before it. They allow the browser to divide the screen in independent areas, the "frames". They also allow new browser windows to be opened. CARPA is currently using frames to show different types of information and menus at the same time.
Click here to call the frame test window and here to close it. Hold, with the mouse cursor, the frame borders and try to stretch them. The upper vertical and the horizontal borders should be stretchable, while the lower vertical one should be fix (invisible in some browsers). The upper-left and the lower-right frames should have scroll-bars when made too small to show the test texts (move the scroll-bar buttons to get used to them).
Image-Maps
This is the last test. Image-maps are not JavaScript elements, they are HTML client-side map handlers, that is, the detection of the "clicks" and the "clickable" areas on an image are processed on the user's computer, without the need of any special handling program. The following image is mapped to a link. If your browser can handle image-maps, then only the image itself will be "clickable", while the rest of it (the invisible area) will remain unsensitive. You know an area is sensitive because, usually, the browser's cursor changes its shape. When you click on the sensitive area, you will be led to the freeware Page. Bye...