Strange "INavigatorContent" error compiling in 4.0 - flex4

I've recently decided to try an upgrade to 4.0. The only error I still can't work out is this one:
"The children of Halo navigators must implement INavigatorContent"
I seem to be getting it on all my ViewStacks that have validators.
<mx:ViewStack xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:NumberValidator id="systolicValidator"
source="{systolic}"
required="true"
property="text"
minValue="10"
maxValue="300"
domain="int"/>
<mx:NumberValidator id="diastolicValidator"
source="{diastolic}"
required="true"
property="text"
minValue="10"
maxValue="200"
domain="int"/>
<mx:TextInput id="systolic"/>
<mx:TextInput id="diastolic"/>
...
</ViewStack>
The error gets thrown on the validator tags. My compiler is set to "flex 3 compatibility mode" and my theme is set to Halo (default).
This seems like it should be a really straight forward fix, so I hate to spin my wheels on it for too long.
Any ideas what I might be missing?

After some reading about Flex 4, it would seem that all non-visual elements should go in these tags:
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
(xmlns:fx="http://ns.adobe.com/mxml/2009")
The error was kinda strange. However, after some cleanup, I got a better error:
'*' declaration must be contained
within the <Declarations> tag since
it does not implement
'mx.core.IUIComponent'.
Much, much more helpful. I'll post again if I find the reason for the strange error I was getting before.

http://bharatria.wordpress.com/2010/05/09/migration-from-flex-3-to-flex-4/
That is a great link that I found while updating my app from flex 3 to 4. It can be a bit of a headache, and I recommend reading up on Spark and Halo and all that stuff.

Related

Cypress Assertions contradictions?

So i think this is one area that I run into issues with, and despite Cypress's amazing documentation assertions sort of feel lacking (but maybe thats because they use Chai assertions and I should be looking there? but even then i've run into confusion).
Anyways, it seems like when I am asserting on some items within cypress I return into conflicting results and I can't seem to pinpoint any reason why.
A few examples specifically:
Why does should(‘contain’,'{Some Text}) search child elements but should(‘have.text/value’,{Some Text}) does not? Or at least thats how it appears? I can't find any documentation that states this
In the example above I noticed this when having a cy.get on an angular dropdown toggle with a <span> within it (that contains the text).
Another oddity is have.text vs have.value. I've noticed sometimes works when the other doesn't. For example input fields only have.value works but not contains or have.text. Is there any reason for this?
I guess im trying to figure out if there is some cheat sheet/guide to when to use each one because it's mostly been trial and error for me (But i'd like to know "why" one works and the other doesn't).
Thanks!

Identifying objects in Tosca with Xpath

I am recently brushing up my skills in TOSCA, I was working on it 2 years ago and switched to Selenium, I noticed that the new TOSCA allows identification using Xpath, and I am really familiar with it now, however, I cannot make it work in TOSCA and I am sure the object identification works because I am testing my xpath in google chrome developer tools.
Something as simple as (//*[text()='Forgot Password?'])[1] does not seem to be working. Could I be missing something?
This is the webpage I am using as reference for this example:
https://www.freecrm.com/index.html
XPath certainly can be used to identify elements of an HTML web UI in Tosca.
Since the question was originally posted, the "Forgot Password?" link at https://www.freecrm.com/index.html appears to have changed so that it's text is now "Forgot your password?" and is actually located at https://ui.freecrm.com/.
To account for that change, this answer uses "(//*[text()='Forgot your password?'])[1]" instead of the expression provided in the original post.
With the text modification, the expression works to idenfity the element in XScan after wrapping it in double quotes:
"(//*[text()='Forgot your password?'])[1]"
Some things to keep in mind when using XPath in Tosca:
It seems that XPath expressions need to be wrapped in double quotes (") so that XScan knows when to start evaluating XPath instead of using its normal rules. Looking closely at the expression that is pregenerated when XScan starts, we see that it is wrapped in double quotes:
"id('ui')/div[1]/div[1]/div[1]/a[1]"
A valid XPath expression doesn't necessarily guarantee uniqueness, so it is helpful to pay attention to any feedback messages at the bottom of XScan. There is a significant difference between "The selected element was not found" and "The selected element is not unique". The former simply indicates XScan can't find a match, the latter indicates that XScan matches successfully, but cannot uniquely identify the element.
My experience has been that it helps to explicitly identify the element to reduce the possibility of ambiguity. If the idea is to target the anchor element in order for tests to click a link, then reducing scope from any element i.e. "(//*[text()='Forgot your Password?'])[1]" to only match anchor elements with that text "//a[text()='Forgot your password?']".
In general, Tricentis (or at least the trainers with whom I have spoken) recommends using methods other than XPath to identify a target if they are available. That said, in my experience I've had better luck with XPath than with "Identify by Anchor".
An XPath expression is visible and editable in the XModuleAttribute properties without having to rescan. Personally, I find it easier to work with than the XML value of the RelativeId property that is generated when using Identify by Anchor.
With Anchor, I've had issues where XModuleAttributes scanned in one browser can no longer be found when switching to another browser, specifically from IE to Chrome. With XPath, I've not had these issues.
While XPath works well to identify the properties of one element with attributes of another because it can identify the relationship between them (very common with controls in Angular applications), the same can often be accomplished by adapting the engine layer using the TBox API (i.e. building a custom control). This requires some initial work up front from developer resources, but it can significantly improve how tests steer these controls in addition to reducing the need for Automation Specialists to have to rely on XPath.
What I know is that you can identify elements with XPath when working with XML messages in Tosca API testing. Your use case seems to be UI testing, but I am not sure about that.
Did you try to use XScan to scan the page? Usually Tosca automatically calculates an XPath expression for you that you can use immediately.
Please see the manual for details.
If it still does not work please try to be more specific? What isn't working? Error message? Unexpected behavior? ...
Tosca provides its set of attributes for locating any type of elements. You can directly select any number of attributes you want to make your element unique along with index of that element. Just make sure that you are not using any dynamic values in 'id' or 'class-name' of that element, also the index range is not so large like 20 out of 100; it could be 5 out of 10, which will be helpful if you need to update it in future.
Also take help of parent elements which will be uniquely located easily and then locate your expected element.
TOSCA provide various ways to locate an element just like selenium plus in addition it will provide other properties also.Under transition properties you will find x path and it will be absolute x path since you know selenium you know the difference between absolute and relative x path. I would suggest you to go with.
1.Identify by ID OR name
2. Identify by anchor
if your relative x path is not working
Try load all properties on the right side bottom. But it showed for me without clicking on it. See here

How do I merge or even disable footnote links in asciidoc fop

I've got a rather large asciidoc document that I translate dynamically to PDF for our developer guide. Since the doc often refers to Java classes that are documented in our developer guide we converted them into links directly in the docs e.g.:
In this block we create a new
https://www.codenameone.com/javadoc/com/codename1/ui/Form.html[Form]
named `hi`.
This works rather well for the most part and looks great in HTML as every reference to a class leads directly to its JavaDoc making the reference/guide process much simpler.
However when we generate a PDF we end up with something like this on some pages:
Normally I wouldn't mind a lot of footnotes or even repeats from a previous page. However, in this case the link to Container appears 3 times.
I could remove some of the links but I'd rather not since they make a lot of sense on the web version. Since I also have no idea where the page break will land I'd rather not do it myself.
This looks to me like a bug somewhere, if the link is the same the footnote for the link should only be generated once.
I'm fine with removing all link footnotes in the document if that is the price to pay although I'd rather be able to do this on a case by case basis so some links would remain printable
Adding these two parameters in fo-pdf.xsl remove footnotes:
<xsl:param name="ulink.footnotes" select="0"></xsl:param>
<xsl:param name="ulink.show" select="0"></xsl:param>
The first parameter disable footnotes, which triggers urls to re-appear inline.
The second parameter removes urls from the text. Links remain active and clickable.
Non-zero values toggle these parameters.
Source:
http://docbook.sourceforge.net/release/xsl/1.78.1/doc/fo/ulink.show.html
We were looking for something similar in a slightly different situation and didn't find a solution. We ended up writing a processor that just stripped away some of the links e.g. every link to the same URL within a section that started with '==='.
Not an ideal situation but as far as I know its the only way.

Incorrect cross-reference syntax gives confusing "undefined label" warning

Revising the title since I figured out that the problem was totally different than what I thought it was. Should I delete this question or leave it out here in case someone else makes this same mistake?
Original title was: Some Sphinx cross-references don't recognize section title?
Original question:
I'm seeing some really odd behavior - I have cross-references in my Sphinx markup according to http://sphinx-doc.org/markup/inline.html#ref-role
but when I build the document (HTML or LaTEXPDF) I get these errors on some of them:
WARNING: undefined label: _unhiding (if the link has no caption the label must precede a section header)
Thing is, the working and nonworking ones look exactly the same to me.
Working:
.. _conditions:
Monitoring Conditions and Alerts
================================
Broken:
.. _performance:
Viewing System Performance
==========================
Also broken:
.. _unhiding:
Unhiding Conditions and Canceling Auto-Dismiss
-----------------------------------------------
I even copied the working one and replaced the reference term, but that didn't help.
I should be able to work around this by explicitly defining the captions, but this is mystifying....
AUGH! Never mind, the title warning was a red herring.
The problem was in the references - I was including the _ in the reference text, but it's secretly not part of the key. I forgot this since I used references a few weeks ago and it's not obvious from the documentation.
Doesn't work:
:ref:`_unhiding`
Does work:
:ref:`unhiding`

What are potential obstacles when switching from XML to SQLite Core Data store?

For example, when using entity.name in NSPredicate, I needed to change setFetchPredicate to setFilterPredicate, the 1st one was working just fine with XML store, SQLite required 2nd one.
I found: this message but couldn't find anything related in the list archive.
Is there any list with all valid NSPredicate statements?
When garbage collection can cause troubles?
See the section titled "Fetch Predicates and Sort Descriptors" of the Core Data Programming Guide for SQLite-specific limitations.
I'm not aware of any Core-Data-specific limitations in a Garbage-Collection-enabled environment - the reference in the e-mail you posted is news to me. A quick Google search revealed this thread and it's the first I'm hearing of this issue. I certainly never encountered it despite having a similar setup in a compute-intensive app that used Core Data + SQLite store type.
You'll need to be a lot more specific about your first question, however. I'm not sure what you mean.

Resources